2016-10-28 21 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(); 

Это означает только «отмеченный товар». Ваш код получает только значение в каждом флажке.
Как насчет доступа в список и управлять доступом?
Я думаю, вам нужно напрямую обратиться к списку.

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