我是Android开发的新手,并且在如何选择由alertdialog托管的列表视图中的某些项目时苦苦挣扎.在下面的代码中,lv.setItemChecked不起作用,因为listview尚未生成,所以我想知道是否有任何ListView或AlertDialog事件确认已生成视图.
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();
Run Code Online (Sandbox Code Playgroud)
没关系,我明白了.我在lv.setAdapter()调用之后立即调用lv.setItemChecked(0,true).一旦我在dlg.show()之后移动它,它就像一个魅力.