当前位置: 代码迷 >> Android >> Android开发经验总结——对话框的应用
  详细解决方案

Android开发经验总结——对话框的应用

热度:24   发布时间:2016-05-01 18:45:13.0
Android开发经验总结——对话框的使用

本文介绍一个Activity中多个对话框的统一管理,主要通过重写Activity的onCreateDialog方法。
废话不多说了,看代码:

@Overrideprotected Dialog onCreateDialog(int id){    Dialog dialog = null;    AlertDialog.Builder builder= new AlertDialog.Builder(this);    switch(id){    case 1:        //设置对话框的各种属性        builder.setTitle("对话框1");        builder.setView(view);        //设置点击确定的动作,不设置的话就不会显示该按钮        builder.setPositiveButton("确定",new DialogInterface.OnClickListener(){            @Override            public void onClick(DialogInterface dialog, int id) {                //其他事务逻辑                removeDialog(1);            }        });        //设置点击取消的动作,不设置的话就不会显示该按钮        builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){            @Override            public void onClick(DialogInterface dialog, int id) {                //其他事务逻辑                removeDialog(1);            }        });        dialog = builder.create();        return dialog;    case 2:        //设置对话框的各种属性        builder.setTitle("对话框2");        builder.setView(view);        //设置点击确定的动作        builder.setPositiveButton("确定",new DialogInterface.OnClickListener(){            @Override            public void onClick(DialogInterface dialog, int id) {                //其他事务逻辑                removeDialog(2);            }        });        //设置点击取消的动作        builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){            @Override            public void onClick(DialogInterface dialog, int id) {                //其他事务逻辑                removeDialog(2);            }        });        dialog = builder.create();        return dialog;    }}

在该Activity中,只要调用showDialog(1)就可以显示“对话框1”,调用showDialog(2)就可以显示“对话框2”。

为了使代码更易看懂,可以在此Activity中定义常量来替代上面的1和2。如下:

?

private static final int DIALOG_ABOUT = 1;private static final int DIALOG_CHOOSE_LANGUAGE = 2;

常量名尽量语义化,这样可以很方便看出来DIALOG_ABOUT是“关于”对话框,DIALOG_CHOOSE_LANGUAGE是“选择系统语言”对话框。这样写代码时也会很清晰。

这个比较简单,就不传代码了。

注:此博客参加“Google 暑期大学生博客分享大赛 - 2011 Android 成长篇

  相关解决方案