我正在尝试进行"状态检查"在一个无线电组中,确定如果在组中选择了2个单选按钮中的一个(if语句),如果选择了2个单选按钮中的另一个(如果是语句),或者如果两者都没有被选中,则确定会发生什么(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"的变量。无论放射线组中所选单选按钮的文本是什么,如果两者都未被选中,则显示错误消息。无论是否选择了radiobutton,它总是显示此错误消息:
(如上所示,选择" AM" radiobutton,但仍显示错误)。
任何关于为什么会这样做的建议都将受到赞赏。请注意,我对Android开发相对较新,所以如果它显然是显而易见的,那么我道歉,但我一直试图让我的头脑这几天了!如果您想查看更多代码,请告诉我,我会很乐意提供它,但我想尽可能保密,所以不想在最初发布所有内容如果没有必要发布。提前致谢。
答案 0 :(得分:1)
而不是isSelected()
使用isChecked()
。
答案 1 :(得分:1)
根据文档,RadioButton扩展了提供方法CompoundButton的isChecked()。但是,与扩展类isSelected()中的方法View的差异可能很难描述。
执行以下操作并且它应该有效:
If (next - prev) > 4
答案 2 :(得分:0)
RadioButton
是一个双状态按钮,可以是checked
或unchecked
。对于此复合按钮,您应该使用方法isChecked()
来了解其当前状态。
请参阅documentation。
更新您的代码,如下所示:
if (rdbAM.isChecked()) {
strTime = rdbAM.getText().toString();
} else if(rdbPM.isChecked()){
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;
}