【发布时间】:2013-03-16 17:58:12
【问题描述】:
我正在尝试构建一个测试应用程序,并且我正在使用单选按钮来选择 A、B、C、D。我正在尝试计算结果-> 例如,当按 A 增量 1 时,当按 B 增量 2 时,依此类推。我最初使用的是 Radio Group,但我知道如果用户尝试将他的问题的答案从 A 更改为 B,则增加的结果将是 3,而不是预期的 2。所以我切换到单选按钮并尝试以下代码:
rb1.setOnCheckedChangeListener(new
android.widget.CompoundButton.OnCheckedChangeListener (){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
i++;
if(rb2.isChecked())
{
i--;
rb2.setChecked(false);
}
}
});
rb2.setOnCheckedChangeListener(new android.widget.CompoundButton.OnCheckedChangeListener (){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
i++;
if(rb1.isChecked())
{
i--;
rb2.setChecked(false);
}
}
});
现在第二个单选按钮必须点击两次才能被选中。这是一个错误,是否可以修复。我需要按钮在第一次单击后更改状态。欢迎所有想法和建议。谢谢。
【问题讨论】:
-
使用 switch case 来获取选中的单选按钮并根据分配的值。
-
我用无线电组尝试过,但它仍然分配了两个值。
-
我对你的问题有点困惑..?首先,您有两个单选按钮 A 和 B,当按下 A 时,您想将数字增加 1,当按下 B 时,您想增加数字 2 对..?当您将增量用于一个实例(即一次)时,增量的用途是什么,因为当您将其更改为 1 到 2 时,只有 2 应该增量..这很令人困惑,请您用场景来说明我
-
你想用 i 做什么?你能再解释一下吗?
-
我会尽力解释得更好。例如,您有 10 个问题,每个问题有 2 个选项 A、B。当你按下 A 时,你会增加 CRAZY++,当你按下 B 时,你会增加 NORMAL++。在测验结束时,您可能会得到 CRAZY = 3,NORMAL = 7。但是现在使用该代码,如果用户试图将他的答案从 A 更改为 B,他必须在 B 上单击两次(以便对其进行检查)这将导致在最终结果中添加 2(而不是 1)。我在问如何删除双击和第一次单击后立即更改状态的按钮?结果可能是 NORMAL=8, CRAZY=6 但这不是真正的结果。