java - If...Else 语句总是转向 "else"。

标签 java android xml

我正在尝试对单选按钮组运行“存在检查”,以确定如果在组中选择了 2 个单选按钮中的 1 个(if 语句),如果选择了 2 个单选按钮中的另一个(否则 if语句)或者如果两者都没有选择(else 语句)。其代码如下:

if (rdbAM.isSelected()) {
        strTime = rdbAM.getText().toString();
    } else if(rdbPM.isSelected()){
        strTime = rdbPM.getText().toString();
    } else {
        AlertDialog.Builder WrongDateFormat = new AlertDialog.Builder(this);
        WrongDateFormat.setMessage("Please Select AM or PM");
        WrongDateFormat.setNeutralButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
            }
        });
        AlertDialog alertWrongDateFormat = WrongDateFormat.create();
        alertWrongDateFormat.show();
        return;
    }

所以基本上,这应该做的是,将名为“strTime”的变量设置为单选组中所选单选按钮的文本是什么,或者如果两者都没有选择,则显示错误消息。相反,无论是否选择单选按钮,它总是显示此错误消息:

enter image description here

(如上所示,选择了“AM”单选按钮,但仍显示错误)。

任何有关原因的建议将不胜感激。请注意,我对 Android 开发还比较陌生,所以如果这显然是显而易见的事情,那么我深表歉意,但几天来我一直在努力解决这个问题!如果您想查看任何进一步的代码,请告诉我,我很乐意提供它,但我会尽力将其保持私密,因此如果没有必要,不想在初始帖子中发布所有内容。提前致谢。

最佳答案

根据文档 RadioButton扩展 CompoundButton提供方法 isChecked() 。然而,与方法 isSelected() 的区别描述很少。来自扩展类View这可能会令人困惑。

执行以下操作,它应该可以工作:

rdbAM.isChecked();

关于java - If...Else 语句总是转向 "else"。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44909069/

相关文章:

java - Spring Data JPA 是否有任何方法可以使用方法名称解析对实体列求和?

java - java 方法中未正确提取字符串

java - 在 android 中创建 HBox 或 VBox

java - 使用 Locale(languageCode, countryCode) 将 BigDecimal 格式化为 Locale 特定的货币字符串

java - Java 9+ 中未找到 Gradle 重复模块/无法找到或加载主类错误

java - android setAdapter 不触发 getView 或不构建 ListView

android - usb 配件,通过 Service 的 intent-filter 捕获 USB_ACCESSORY_ATTACHED

html - 相同域、协议(protocol)和端口上的 Chrome "Unsafe attempt to load URL"

xml - 如何使用 Powershell 访问 CDATA 内的 XML 数据

c# - 尝试了对象反序列化和 LINQ 后,无法解析 XML 对象和子对象