2016-10-28 65 views
1
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的警報對話框加載。現在,我要使用禁用預先選中的複選框:禁用預先檢查複選框警報對話框android java

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

但它不工作任何想法如何禁用表示讚賞。

回答

0
SparseBooleanArray checkedItems = lv.getCheckedItemPositions(); 

這意味着只是'檢查項目'。您的代碼僅訪問每個複選框中的值。
訪問列表視圖並操作訪問權限如何?
我想你應該直接進入listview。

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