`
liangoogle
  • 浏览: 273980 次
  • 性别: 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);

    }

}


 

 

分享到:
评论

相关推荐

    云应用开发 ——Google App Engine & Google Web Toolkit入门指南

    4.15 弹出对话框——DialogBox 4.16 修饰面板——DecoratorPanel 4.17 自然布局面板——FlowPanel 4.18 水平布面板——HorizontalPanel 4.19 垂直布局面板——VerticalPanel 4.20 绝对定位面板——AbsolutePanel ...

    WINDOWS画笔程序

    说明文档:制作类似windows画笔的程序 功能: 文件—— 新建 打开 保存 另存为 页面设置——画布大小变化 退出 ... 通用对话框控件, 位于“Microsoft CommonDialog Control 6.0” 中

    Java典型模块

    9.7.3 Dialog和FileDialog组件的基本知识 9.8 小结 第10章 计算器(布局管理器) 10.1 计算器原理 10.1.1 项目结构框架分析 10.1.2 项目功能业务分析 10.2 计算器的实现过程 10.3 知识点扩展——事件机制的高级知识 ...

    jquery 弹出窗口,可缩放,可拖拽

    它的消息容器甚至能够根据宽度让文本居中或居左对齐——这一切全是XHTML+CSS原生实现。 完善的接口 它的接口完善,可以轻易与外部程序配合使用。如异步写入消息、控制位置、尺寸、显示与隐藏、关闭等。 细致的体验 ...

    policy_templates

    左侧出现了「计算机配置——管理模板(——「经典管理模板(ADM)」)——Google——Google Chrome」的目录。4. 进入子目录「扩展程序」,双击「配置扩展程序、应用和用户脚本安装源」开始修改配置。5. 在出现的窗口中...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--android 挪动dialog的位置 |--android 控制对话框位置 |--android 根据uri获取路径 |--android 模拟器错误 |--android 横竖屏切换 |--android 获取mac地址 |--android 获取sd卡状态 |--android 设置apn |--...

    深入浅出MFC【侯捷】

    CWinApp::InitApplication CMyWinApp::InitInstance CFrameWnd::Create产生主窗口(并先注册窗口类) 奇怪的窗口类名称Afx:b:14ae:6:3e8f 窗口显示与更新 CWinApp::Run——程序生命的活水源头 把消息与...

    深入浅出MFC 2e

    Dialog Templates和Dialog classes Macros Directives 动手修改Top Studio AppWizard 利用资源编辑器修改IDD_CUSTOM1对话框画面 利用ClassWizard修改IDD_CUSTOM1对话框的对应类CCustomlDlg 改写OnDismiss虚拟函数,...

    侯捷- -深入浅出MFC

    Dialog Templates和Dialog classes Macros Directives 动手修改Top Studio AppWizard 利用资源编辑器修改IDD_CUSTOM1对话框画面 利用ClassWizard修改IDD_CUSTOM1对话框的对应类CCustomlDlg 改写OnDismiss虚拟函数,...

    first-thing-first:基于Stephen Covey的时间管理理念,制作一个基于网络的任务项目管理工具

    很容易地添加项目——比如Cmd+Enter就可以打开一个dialog然后填入task后自动加入到相应框中 task肯定会很多,需要只显示其中一部分,自己可以定义 如果定义显示出来的不多,那么最好可以用透明度来控制其他的显示...

    KODExplorer 芒果云-资源管理器

    否则——显示,并且置为焦点窗口 - 拖入url ——oexe 新窗口打开 - 选中文件时,移动到屏幕可视区域(解决上下左右选中文件滚动条不一致问题) ###ver2.51 `2014/6/22` ---- ####fix bug:(bug解决和程序优化) -...

    FLAC3D5.00培训教程.pptx

    程序运行或停止——三种状态下工具条的显示 1.1.2 the toolbar; FLAC3D5全文共130页,当前为第10页。 1.1.3 the menus FLAC3D5全文共130页,当前为第11页。 Options Dialog: General: Destroy Button, System Title...

    简单容易使用的对话框

    源码dialogplus,一个简单容易使用的对话框——DialogPlus,也可以显示在上 中 下三个位置。Dialogplus也是一个简单的Android dialog对话框控件,用于替代使用dialog/fragments做为对话框显示的普通视图。 ...

    Visual c++源代码

    如果读者需要使用光盘中的源代码,请将相关目录及其包含的内容复制到您的硬盘上,并修改对应的硬盘目录属性——取消目录及其所包含子目录和文件的“只读”属性。否则,打开VC项目时由于无法进行文件的“写”操作,会...

    asp.net知识库

    用于弹出ModalDialog进行数据选择的控件 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的...

    Visual C++编程从基础到实践

    如果读者需要使用光盘中的源代码,请将相关目录及其包含的内容复制到您的硬盘上,并修改对应的硬盘目录属性——取消目录及其所包含子目录和文件的“只读”属性。否则,打开VC项目时由于无法进行文件的“写”操作,...

Global site tag (gtag.js) - Google Analytics