我正在尝试使用ArrayAdapter创建一个AlertDialog,以显示用户选择表单的项目列表(单选)。但是,我想显示之前选择的项目。由于选择项目会自动关闭对话框,我的想法是为之前选择的项目设置自定义背景颜色。下面是我希望实现的模型:
我目前的代码是:
private void showCustomAlert(int alertNumber, int parentTaskId) {
Log.w(LOGTAG, showCustomAlert);
int alertNumberID = Integer.parseInt(task1_id);
if (alertNumber==2) alertNumberID = Integer.parseInt(task2_id);
else if (alertNumber==3) alertNumberID = Integer.parseInt(task3_id);
else if (alertNumber==4) alertNumberID = Integer.parseInt(task4_id);
AlertDialog.Builder builderSingle = new AlertDialog.Builder(thisActivity);
builderSingle.setIcon(R.drawable.icon);
builderSingle.setTitle("Select Task:");
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(thisActivity,
android.R.layout.select_dialog_singlechoice);
for (int i=0; i<taskList.size(); i++) {
BT_item tmpItem = taskList.get(i);
if (BT_strings.getJsonPropertyValue(tmpItem.getJsonObject(),"task_parent","").equalsIgnoreCase(parentTaskId + ""))
arrayAdapter.add(BT_strings.getJsonPropertyValue(tmpItem.getJsonObject(),"task_name",""));
}
builderSingle.setNegativeButton("cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builderSingle.setAdapter(arrayAdapter,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int taskSelected) {
Log.w(LOGTAG, "task selected");
}
});
builderSingle.show();
}
答案 0 :(得分:2)
试试这个..而不是使用buildSingle.setAdapter在行下面
builderSingle
.setCancelable(true)
.setSingleChoiceItems(display_array, selected_pos, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog1, int pos) {
// TODO Auto-generated method stub
selected_pos = pos;
dialog.cancel();
}
})
display_array是您在数组中的对话框中显示的内容..