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即可打开对话框,并获取选择结果。 
  

你可能感兴趣的:(android)