1
我正在嘗試使用ArrayAdapter創建AlertDialog以顯示用戶選擇表單(單選)的項目列表。但是,我想顯示先前選擇了哪個項目。由於選擇一個項目會自動關閉對話框,我的想法是爲先前選擇的項目設置自定義背景顏色。下面就是我希望達到的樣機: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();
}
在適配器上進行選擇和簡單地使視圖看起來被選中是有區別的。也許你可以找到具有你想要選擇的項目的視圖,並將該視圖標記爲選中狀態? –
正確 - 我試圖讓它「看」選擇,而不是實際選擇它。這個想法是讓用戶根據需要更改他們的選擇,同時向他們展示他們先前選擇的內容。 – user2692264