showDialogとonCreateDialogを経由するのではなく、その場でダイアログを作成することができます。この方法では、常に現在の選択をsetSingleChoiceItemsに与えます。
//where we display the dialog
showDialog(MYDIALOG);
AlertDialog.Builder builder = new Builder(this);
String[] choices = {"A","B","C"};
builder.setSingleChoiceItems(choices,current_choice,null);
builder.setPositiveButton("Select",null);
builder.setNegativeButton("Cancel",null);
builder.show();
...
protected Dialog onCreatDialog(int id) {
if (id==MYDIALOG) {
AlertDialog.Builder builder = new Builder(this);
String[] choices = {"A","B","C"};
builder.setSingleChoiceItems(choices,current_choice,null);
builder.setPositiveButton("Select",null);
builder.setNegativeButton("Cancel",null);
return builder.show();
}
return null;
}
私は 'AlertDialog.Builder.setSingleChoiceItems()'ので、私は単一選択リストビューを推測を使用。しかし、キャンセルを押してダイアログに戻った場合、キャンセルされた選択肢が表示され、これは自分のアプリの現在の状態と一致しません。 – Pooks