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