Android: Sélectionner des éléments dans une multi-sélection de ListView à l'intérieur de AlertDialog

Je suis nouveau sur le développement android et éprouvent de la difficulté à sélectionner certains éléments dans une liste hébergé par un alertdialog. Dans le code ci-dessous, lv.setItemChecked ne fonctionne pas comme listview n'a pas été généré encore, alors je me demande si il n'y a aucun contrôle ListView ou AlertDialog événement qui confirme ce point de vue a été généré.

String [] values = {"a","b","c"};
ArrayAdapter<String> adp = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, values);
ListView lv = new ListView(this);
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setOnItemClickListener(this);
lv.setAdapter(adp);
AlertDialog.Builder bldr = new AlertDialog.Builder(this);
bldr.setTitle("Select");
bldr.setView(lv);
bldr.setPositiveButton("Done",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
handleDone();
}
});
bldr.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
handleCancel();
}
});
final Dialog dlg = bldr.create();
dlg.show();

Jamais l'esprit, je l'ai eu. J'ai été l'appel de lv.setItemChecked(0, true) juste après le lv.setAdapter (). Une fois que je l'ai déplacé après la dlg.show(), il a travaillé comme un charme.

OriginalL'auteur user2419168 | 2013-11-16

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *