Android--多选项列表对话框的用法

        创建一个多选项列表对话框,只要创建AlerDialog.Builder对象,调用的setMultiChoiceItems()方法即可,该方法接收3个 参数,第一个作为列表选项,传入字符串数组,第二个传入boolean数组,设置初始化时选择哪些列表项,第三个是DialogInterface.OnMultiChoiceClickListener()接口的回调对象,监听列表项被选择或者被撤销选择的事件。

  实现DialogInterface.OnMultiChoiceClickListener()接口时要重写其中onClick()方法,该方法拥有三个参数。第一个参数DialogInterface的对象,是做出选择的对话框的对象(The dialog where the selection was made)。第二个参数int which,被点击的列表项的位置(The position of theitem in the list that was clicked)。第三个参数booleanisChecke,表示该列表项是否被选择(True if the click checked theitem, else false)。

  为了获取对话框选择的结果,最好在onClick()方法中,将选择的结果记录在setMultiChoiceItems()方法的第二个参数boolean数组中。

  实例如下:


private void multiChoiceDialog(final String[] res, final boolean[]choice)
{
    AlertDialog.Builder builder=new AlertDialog.Builder(this);
    builder.setTitle("多列表选项对话框")
            .setIcon(R.drawable.tools)
            //res为提供选项的数组
            //choice为选择的初值
            //通过OnMultiChoiceClickListener监听用户的选择
            //用户的选择改变choice的值,将选择的结果返回给调用
            .setMultiChoiceItems(res, choice,
                    new DialogInterface.OnMultiChoiceClickListener()
                    {
                         @Override
                         public void onClick(DialogInterface dialog, int which, boolean isChecked)
                        {
                            choice[which]=isChecked;
                        }
                    }
            )
            .setPositiveButton("确认", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    String str="";
                    for(int i=0;i<choice.length;i++)
                    {
                        if(choice[i])
                        {
                            str+=res[i]+"\n";
                        }
                    }
                    str+="被选中";
                    Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
                }
            });
    builder.create().show();
}
  调用该方法,传入选项res,传入初值和记录选择结果的字符串choice即可打开对话框,并获取选择结果。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值