J'ai une boîte de dialogue qui affiche une liste de cases à cocher. L'info dont les cases doivent être vérifiées à chaque ouverture provient d'un edittext. J'ai cherché un moyen de ne pas autoriser la mise en cache de la boîte de dialogue mais je n'ai pas pu trouver comment faire cela. Maintenant, je redéfinis onPrepareDialog pour définir les cases à cocher avant que la boîte de dialogue s'ouvre. J'ai supprimé le contenu de mon edittext, ouvert le dialogue et il y avait toujours les mêmes cases à cocher ... quelqu'un peut-il me dire comment réinitialiser les cases à cocher?Impossible de définir l'état de la case à cocher dans onPrepareDialog
@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);
}