java - Android 对话框。在对话框中使用单选按钮,用户必须单击一个

标签 java android android-dialog

我正在使用带有 2 个单选按钮的对话框让用户对对象进行分类。如果用户明确单击其中一个单选按钮,则此方法有效,但如果他们只是立即按 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(); 
    }

我刚刚添加了用于调试的 Toast。非常感谢。

最佳答案

您可以将一个单选按钮设置为默认为真,即即使用户未选择任何内容,该选项也会默认被选中。

否则,您可以检查当用户按下确定时是否至少选择了一个单选按钮。如果没有被选中,请不要关闭对话框。

关于java - Android 对话框。在对话框中使用单选按钮,用户必须单击一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14539472/

相关文章:

java - 将 MySQL ID 与 JTable 行同步

Android:从 Intent Activity 返回主 Activity 后执行方法

java - 我的自定义 EditText 无法正常工作

android - Material Design 中的警告对话框

kotlin - 如何处理对话框中的取消和确定按钮

java - ClientRequestFactory RestEasy 已弃用...还有其他 RestEasy 替代方案吗?

java - Android DataBinding、onItemrangeMoved - 条目 block 何时在列表中移动?

java - 为什么开发服务器不为此查询自动创建索引?

java - 使用 AlertDialog 复制 ProgressDialog

android - 如何将对话框窗口包装到内容中?