チェックボックスのリストを表示するダイアログがあります。ボックスを開くたびにチェックする必要がある情報は、編集テキストから取得されます。ダイアログのキャッシュを許可しない方法を探しましたが、その方法がわかりませんでした。ここで、onPrepareDialog をオーバーライドして、ダイアログが開く前にチェックボックスを設定します。edittext の内容を削除し、ダイアログを開いたところ、同じボックスがチェックされていました...チェックボックスをリセットする方法を誰か教えてもらえますか?
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
ListView lv = ((AlertDialog) dialog).getListView();
if (lv == null)
return;
boolean[] checked = cbDialog.setAndGetCheckedArray();
String s = "onPrepareDialog... checked=";
for (int i=0; i<checked.length; i++)
s+="["+i+"="+checked[i]+"]";
System.out.println(s);
// if edittext is empty, all entries in checked[] are false here,
// but these changes do NOT affect the checkboxes in the dialog:
for (int i=0; i<checked.length; i++)
if (checked[i])
lv.setItemChecked(i, true);
else
lv.setItemChecked(i, false);
}