`
liangoogle
  • 浏览: 276654 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dialog —— 不再显示

阅读更多

要显示一个dialog,要实现点击dialog上“不再提示”按钮之后,下次启动程序就不会出现此对话框,怎么实现呢:

 

1下面是一个例子:

 

主Activity:

 

package hao.test.mima;

 

 

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.KeyEvent;

 

import hao.test.uitil.YyBackUpPreferences;

 

public class mima extends Activity {

    private Preferences pref = null;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        pref = Preferences.getInstance(this);

        //一定要做判断

        if (pref.isShowPwdTip()) {

            showDialog(0);

        }

    }

 

    @Override

    protected Dialog onCreateDialog(int id) {

        switch (id) {

            case 0: {

                 return new AlertDialog.Builder(mima.this)

                        .setOnKeyListener(new DialogInterface.OnKeyListener() {

 

                            @Override

                            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {

                                // TODO Auto-generated method stub

                                if (event.getKeyCode() == KeyEvent.KEYCODE_SEARCH) {

                                    return true;

                                }

                                return false;

                            }

                        })

                        .setTitle("实验:")

                        .setMessage("这是一个测试")

                        .setPositiveButton("确定",

                                new DialogInterface.OnClickListener() {

                                    @Override

                                    public void onClick(DialogInterface dialog, int which) {

                                        removeDialog(0);

                                    }

                                })

                        .setNegativeButton("不再显示",

                                new DialogInterface.OnClickListener() {

                                    @Override

                                    public void onClick(DialogInterface dialog, int which) {

                                        removeDialog(0);

                                        //在这里记录状态

                                        pref.closeShowPwdTip();

                                    }

                                })

                        .setNeutralButton("设置", new DialogInterface.OnClickListener() {

                            @Override

                            public void onClick(DialogInterface dialog, int which) {

                                removeDialog(0);

//                                startSettingActivity();

                            }

                        }).create();

            }

            default: {

                return null;

            }

        }

    }

 

 

参数class:

 

 

 

package hao.test.uitil;

 

 

import android.content.Context;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.preference.PreferenceManager;

 

public class Preferences {

    private static final String KEY_IS_SHOW_PWD_TIP = "KISPT";

    private static SharedPreferences sharedPreferences;

    private static Context context;

    private static Preferences instance;

    public static Preferences getInstance(Context c) {

        context=c;

        if (instance == null) {

            instance = new Preferences();

        }

        return instance;

    }

    public boolean closeShowPwdTip() {

        Editor editor = getEditor();

        editor.putBoolean(KEY_IS_SHOW_PWD_TIP, false);

        return editor.commit();

    }

    private Editor getEditor() {

        SharedPreferences pref = getSharedPreferences();

        return pref.edit();

    }

    private SharedPreferences getSharedPreferences() {

        if (sharedPreferences == null)

            sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);

        return sharedPreferences;

    }

//判断是否点击了那个“不再显示按钮”,如果按了的话,返回false。

    public boolean isShowPwdTip() {

        return getSharedPreferences().getBoolean(KEY_IS_SHOW_PWD_TIP, true);

    }

}


 

2下面是在一个文件中的:

 

 

package hao.test.mima;

 

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.os.Bundle;

import android.preference.PreferenceManager;

import android.view.KeyEvent;

 

public class mima extends Activity {

    private static final String KEY_IS_SHOW_PWD_TIP = "KISPT";

    private static SharedPreferences sharedPreferences;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        // 一定要做判断

        if (isShowPwdTip()) {

            showDialog(0);

        }

    }

 

    @Override

    protected Dialog onCreateDialog(int id) {

        switch (id) {

            case 0: {

                return new AlertDialog.Builder(mima.this)

                        .setOnKeyListener(new DialogInterface.OnKeyListener() {

 

                            @Override

                            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {

                                if (event.getKeyCode() == KeyEvent.KEYCODE_SEARCH) {

                                    return true;

                                }

                                return false;

                            }

                        }).setTitle("实验:").setMessage("这是一个测试")

                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {

                            @Override

                            public void onClick(DialogInterface dialog, int which) {

                                removeDialog(0);

                            }

                        }).setNegativeButton("不再显示", new DialogInterface.OnClickListener() {

                            @Override

                            public void onClick(DialogInterface dialog, int which) {

                                removeDialog(0);

                                // 在这里记录状态

                                closeShowPwdTip();

                            }

                        }).setNeutralButton("设置", new DialogInterface.OnClickListener() {

                            @Override

                            public void onClick(DialogInterface dialog, int which) {

                                removeDialog(0);

                                // startSettingActivity();

                            }

                        }).create();

            }

            default: {

                return null;

            }

        }

    }

 

    public boolean closeShowPwdTip() {

        if (sharedPreferences == null)

        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

        Editor editor = sharedPreferences.edit();

        editor.putBoolean(KEY_IS_SHOW_PWD_TIP, false);

        return editor.commit();

    }

 

    public boolean isShowPwdTip() {

        if (sharedPreferences == null)

            sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

        return sharedPreferences.getBoolean(KEY_IS_SHOW_PWD_TIP, true);

    }

}


 

 

分享到:
评论

相关推荐

    《详解Dialog——基础元素构建》源码

    这篇博客《详解Dialog——基础元素构建》的源码深入探讨了如何创建和自定义Dialog,提供了丰富的实践案例。以下是根据博客内容和源码解析的一些关键知识点: 1. **Dialog基本使用**: Android中的Dialog是基于...

    15. android dialog ——列表对话框

    在Android开发中,`Dialog`是一种非常常用的组件,它用于在主界面之上显示一个临时的窗口,用于向用户展示信息或者获取用户的输入。本节我们将深入探讨如何创建和使用列表对话框(List Dialog)。 列表对话框是`...

    17. android dialog —— 单选列表对话框

    在Android开发中,Dialog是一种非常常见的用户交互组件,它用于在主界面之上显示一个弹出式窗口,通常用于展示警告信息、确认操作或者提供一种选择方式。本篇将重点讲解如何创建并使用单选列表对话框(Single Choice...

    android dialog ——ProgressDialog 进度条对话框详解

    public void onProgressChanged(ProgressDialog dialog, int progress, boolean fromUser) { // 在这里处理进度变化 } }); ``` 五、自定义ProgressDialog 尽管ProgressDialog提供了基本的样式,但有时我们可能...

    android dialog —— 日期和时间选择对话框.zip

    在Android开发中,Dialog是一种非常常见的用户界面组件,它用于显示临时信息或向用户征求一些简单输入。在标题“android dialog —— 日期和时间选择对话框.zip”中提到的,我们将探讨如何在Android应用中创建和使用...

    18. android dialog —— 多选列表对话框

    在Android开发中,`Dialog`是一种非常常见的组件,它用于在主界面之上显示一个弹出式窗口,可以用来展示信息、获取用户输入或者执行特定操作。本教程将深入讲解如何创建一个多选列表对话框(MutiChoice Dialog),让...

    19. android dialog —— 日期和时间选择对话框

    在Android开发中,Dialog是一种非常常见的用户交互组件,它用于在主界面之上显示临时的、半透明的窗口,用于向用户展示重要的信息或者获取用户的输入。在这个专题中,我们将深入探讨如何在Android应用中创建和使用...

    android dialog —— 自定义数据源的单选列表对话框

    在这种情况下,使用自定义数据源的单选列表对话框(Dialog)是一种理想的选择。本文将详细介绍如何在Android中实现这样一个功能。 首先,我们来理解“单选对话框”是什么。单选对话框,通常以列表形式呈现,用户...

    安卓Android源码——(Dialog对话框).zip

    本资源“安卓Android源码——(Dialog对话框).zip”可能包含了关于如何创建、自定义和使用Dialog对话框的详细示例代码。通过分析这些源码,我们可以深入理解Dialog的工作原理,并提升在实际应用中的开发能力。 首先...

    安卓Android源码——DialogShow.zip

    本压缩包“安卓Android源码——DialogShow.zip”很可能包含了一个示例项目,用于演示如何在Android应用中创建和显示自定义的Dialog。以下是对相关知识点的详细说明: 1. **Dialog基础知识**: - Dialog是Android中...

    安卓Android源码——所有Dialog对话框.zip

    在安卓(Android)开发中,Dialog对话框是用户界面(UI)设计中不可或缺的一部分,它用于向用户显示临时信息或需要用户做出决策的情况。在Android源码中,Dialog类及其子类提供了丰富的功能来实现各种对话框样式。...

    安卓Android源码——所有Dialog对话框.rar

    这份"安卓Android源码——所有Dialog对话框.rar"压缩包很可能包含了各种类型的Dialog实现,这对于我们理解Android系统中Dialog的工作原理以及自定义Dialog的实现方法非常有帮助。 首先,我们要知道Dialog是基于...

    安卓Android源码——安卓Android实现Windows风格的Dialog.rar

    本资源"安卓Android源码——安卓Android实现Windows风格的Dialog.rar"提供了一种实现方式,帮助开发者在安卓系统上构建出与Windows系统类似风格的对话框。 首先,了解Dialog在Android中的基本使用。在Android SDK中...

    安卓Android源码——(Dialog对话框).rar

    Dialog继承自Window,这意味着它拥有自己的视图层次结构,并可以独立于应用程序的主线程进行显示和管理。 在创建Dialog时,通常会调用Dialog(Context context)构造函数,传入一个上下文对象。这个上下文用于确定...

    安卓Android源码——dialog去除边框代码.zip

    在Android开发中,Dialog是一种常见的用户交互元素,用于在用户界面中显示临时信息或进行简单的交互操作。然而,系统默认的Dialog通常会带有边框,这可能不符合某些设计师的审美或者应用的整体风格需求。本资源...

    Android 控制关闭Dialog

    在Android开发中,Dialog是一种常见的用户交互元素,用于在用户界面中显示临时信息或进行简单的交互操作。通常,当我们使用AlertDialog构建一个对话框时,它的默认行为是在用户点击按钮(如"确定"或"取消")后自动...

    Android-dialog库可以在任意类内调用子线程或ui线程内均可显示

    在UI线程中调用`show()`方法来显示Dialog,确保不违反Android的UI更新规则——所有的UI操作必须在主线程中进行。然而,如果Dialog的创建过程耗时较长,可能会影响用户体验,这时就需要使用子线程来处理,然后通过...

    安卓Andriod源码——实现Windows风格的Dialog.zip

    这个压缩包"安卓Andriod源码——实现Windows风格的Dialog.zip"提供了如何在Android应用中创建这种特殊Dialog的方法。在这里,我们将深入探讨相关知识点。 1. 自定义Dialog:Android系统提供了多种内置的Dialog样式...

    安卓Android源码——HerilyAlertDialog完全自定义的Dialog.rar

    这个压缩包"安卓Android源码——HerilyAlertDialog完全自定义的Dialog.rar"包含了一个名为`HerilyAlertDialog`的自定义对话框实现,可以帮助开发者更好地理解和实现自定义Dialog功能。 `HerilyAlertDialog`可能是一...

Global site tag (gtag.js) - Google Analytics