警报对话框中具有多选复选框的列表?

时间:2012-12-19 08:43:57

标签: android android-listview android-alertdialog android-checkbox

我一直试图获得一个列表,其中包含10-12个项目,每个项目在警告对话框中都有一个复选框(即我的活动开始时)。 到目前为止,我已经提出了以下代码;它没有复选框。
那么,我该如何实现呢?任何示例代码或建议将不胜感激。
感谢

final CharSequence[] items = {"cat1","cat2","cat3" };
          AlertDialog.Builder builder = new AlertDialog.Builder(this);
          builder.setTitle("Categories");
          builder.setItems(items, new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int item) {
            switch (item) {
            case 0:
             //handle item1
             break;
            case 1:
             //item2
             break;
            case 2:
             //item3
             break;
            default:
             break;
            }  }
          });
          AlertDialog alert = builder.create();
          alert.show();

3 个答案:

答案 0 :(得分:5)

您必须在构建器对象中设置setSingleChoiceItems()方法,而不是像下面的setItems。

 builder.setSingleChoiceItems(items , -1,
                      new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int which) {
               // The 'which' argument contains the index position
               // of the selected item
           }
    })

如果要显示多个选择列表对话框,则必须在其参数中使用DialogInterface.OnMultiChoiceClickListener设置setMultiChoiceItems()而不是setSingleChoiceItems

在Developer.Android.com中提到的所有内容都可以找到dialog help here

答案 1 :(得分:1)

我建议不要在警告对话框中使用复杂的自定义视图。 更好地使用开始活动来获得结果。 在清单集android:theme =“@ style / Theme.Dialog”中,用于对话活动

答案 2 :(得分:0)

正如rajpara所说,但是我不会忘记通过将您的开关替换为[。]串口来减少代码的复杂性.toString();