禁用预先选中的复选框警告对话框android java

时间:2016-10-28 04:49:26

标签: java android android-alertdialog disabled-input

ListView lv = ((AlertDialog) dialog).getListView();
SparseBooleanArray checkedItems = lv.getCheckedItemPositions();
if (checkedItems != null) {
  for (int i = 0; i < checkedItems.size(); i++) {
    //if (checkedItems.valueAt(i)) {
    if (checkedItems.get(i)) {
      lv.getChildAt(checkedItems.keyAt(i)).setEnabled(false);
      String item = lv.getAdapter().getItem(
        checkedItems.keyAt(i)).toString();
      Log.i("TAG", item);
    }
  }
}

我在android中加载警告对话框时获得所有预先选中的复选框。现在,我想使用以下方法禁用预先选中的复选框:

lv.getChildAt(checkedItems.keyAt(i)).setEnabled(false);

但它不知道如何禁用是值得赞赏的。

3 个答案:

答案 0 :(得分:0)

SparseBooleanArray checkedItems = lv.getCheckedItemPositions();

这意味着只是'检查项目'。您的代码只能访问每个复选框中的值。
如何访问listview并操作访问权限?
我认为您应该直接访问listview。

答案 1 :(得分:0)

AlertDialog.Builder builder = new AlertDialog.Builder(A);
builder.setMultiChoiceItems(items, null,
                            new DialogInterface.OnMultiChoiceClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which,
                                                    boolean isChecked) {
                                    AlertDialog dialog = (AlertDialog) dialog;
                                    ListView v = dialog.getListView();
                                    int i = 0;
                                    for (int i = 0; i < items. length; i++) {
                                        v.setItemChecked(i, false); // true if you want to check all
                                        i++;
                                    }
                                }
                            });

答案 2 :(得分:0)

也许对某人有用。

((CheckedTextView)lv.getChildAt(i)).setChecked(isChecked);