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

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

@Override
protected 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 成长篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值