Android选择对话框

对话框

确定取消对话框

  • 创建对话框构建器对象,类似工厂模式

    AlertDialog.Builder builder = new Builder(this);
    
  • 设置标题和正文

    builder.setTitle("警告");
    builder.setMessage("若练此功,必先自宫");
    
  • 设置确定和取消按钮

    builder.setPositiveButton("现在自宫", new OnClickListener() {
    
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            Toast.makeText(MainActivity.this, "恭喜你自宫成功,现在程序退出", 0).show();
        }
    });
    
    builder.setNegativeButton("下次再说", new OnClickListener() {
    
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            Toast.makeText(MainActivity.this, "若不自宫,一定不成功", 0).show();
        }
    });
    
  • 使用构建器创建出对话框对象

    AlertDialog ad = builder.create();
    ad.show();
    

单选对话框

AlertDialog.Builder builder = new Builder(this);
    builder.setTitle("选择你的性别");

* 定义单选选项

    final String[] items = new String[]{
            "男", "女", "其他"
    };
    //-1表示没有默认选择
    //点击侦听的导包要注意别导错
    builder.setSingleChoiceItems(items, -1, new OnClickListener() {

        //which表示点击的是哪一个选项
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "您选择了" + items[which], 0).show();
            //对话框消失
            dialog.dismiss();
        }
    });

    builder.show();

多选对话框

    AlertDialog.Builder builder = new Builder(this);
    builder.setTitle("请选择你认为最帅的人");

* 定义多选的选项,因为可以多选,所以需要一个boolean数组来记录哪些选项被选了

    final String[] items = new String[]{
            "伟哥",
            "李哥",
            "李老师",
            "炮哥"
    };
    //true表示对应位置的选项被选了
    final boolean[] checkedItems = new boolean[]{
            true,
            false,
            false,
            false,
    };
    builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {

        //点击某个选项,如果该选项之前没被选择,那么此时isChecked的值为true
        @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
            checkedItems[which] = isChecked;
        }
    });

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

        @Override
        public void onClick(DialogInterface dialog, int which) {
            StringBuffer sb = new StringBuffer();
            for(int i = 0;i < items.length; i++){
                sb.append(checkedItems[i] ? items[i] + " " : "");
            }
            Toast.makeText(MainActivity.this, sb.toString(), 0).show();
        }
    });
    builder.show();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值