ユーザーにオブジェクトを分類させるために、2 つのラジオ ボタンを持つダイアログを使用しています。これは、ユーザーがラジオ ボタンの 1 つを明示的にクリックした場合には機能しますが、すぐに [OK] を押した場合には機能しません。どうすればこの状況に対処できますか?
case DIALOG_OBJECT_CLASSIFICATION:
return new AlertDialog.Builder(DrawNewPlans.this)
.setIcon(R.drawable.alert_dialog_icon)
.setTitle("What Object are you drawing?")
.setSingleChoiceItems(R.array.types_of_object, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
makeToast("WhichButton = "+whichButton);
switch (whichButton) {
case 0:
makeToast("User Picked Room");
isRoom = true;
isFurniture = false;
return;
case 1:
makeToast("User Picked Furniture");
isRoom = false;
isFurniture=true;
return;
}
/* User clicked on a radio button do some stuff */
}
})
.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
makeToast("classOfRoom is "+classOfRoom);
makeToast("isRoom = "+isRoom);
makeToast("isFurniture = "+isFurniture);
if (isRoom == true && isFurniture == false) {
classOfRoom="Room";
} else if (isRoom == false && isFurniture == true) {
classOfRoom="Furniture";
}
/* User clicked Yes so do some stuff */
isClassified=true;
methodWhichStartsDialogs();
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
/* User clicked No so do some stuff */
}
}).create();
}
デバッグ用にトーストを追加しました。どうもありがとう。