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);

但这是行不通的任何想法如何禁用赞赏。

最佳答案

SparseBooleanArray checkedItems = lv.getCheckedItemPositions();


这意味着只是“选中的项目”。您的代码仅在每个复选框中访问一个值。如何访问列表视图并进行访问?
我认为您应该直接访问listview。

10-05 21:41