2016-10-28 12 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 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++; 
            } 
           } 
          }); 
関連する問題