我按照@CommonsWare告诉我的方式编辑了代码 当我尝试点击r1时,我强行关闭,问题是它似乎按钮[i] .isChecked()没有;工作 - >修好了
我有final RadioButton[] buttons = {r1,r3,r5,r7};
我想算一下(基本上是答案)
public void onClick(View view){
checkStates(buttons);}
}
private void checkStates(RadioButton[] buttons) {
for (int i = 0; i < 4; i++) {
if (buttons[i].isChecked())
yes++;}
if (yes>=3){
Intent intent=new Intent(this,AnotherClass.class);
startActivity(intent);
}
}
基本上我有,没有单选按钮。我想计算是的答案,如果用户改变主意,则检查否减少是
r1 r3 r5等是“是”的答案 r2 r4 r6是“否”答案
我的方法可能是错的,因为我是新手,但如果有人帮助我,我会发布整个事情让人们看。
请帮忙!
好的,我检查了日志猫,我收到以下错误(显然哪里但我不知道为什么以及如何实现此功能)
Android Runtime: Uncaught handler :thread main exiting due to uncaught exception
java.lang.NullPointerException
RadioButtons.checkStates(RadioButtons.java:49) --> here : if (buttons[i].isChecked())
RadioButtons.onClick(RadioButtons.java:42)--> here: checkStates(buttons);
编辑:问题 - @ CommonsWare指出的方式 - buttons
没有被初始化,我得到了NullPointerException
所以我之前用这个改变了代码:RadioButton[]buttons =new RadioButton[3];
给了数组的大小
public void onClick(View view){
checkStates(buttons);
}
private void checkStates(RadioButton[] buttons) {
buttons[0]=rb1;
buttons[1]=rb3;
buttons[2]=rb5;
if (buttons[i].isChecked()){
yes++;}
tv.setText("Result:"+yes);
}
这一次的问题是它仍然计算点击次数而不是“是”答案 我有以下问题需要解决
计算“是”的答案是肯定的++
如果用户第二次点击,请不要计算
如果用户将注意力从“是”改为“否”,则减少“是”
如果用户按下“否”则不计算任何内容(我的应用程序的重要部分是计算是的答案)
答案 0 :(得分:1)
如何检查android中单选按钮的状态?
致电isChecked()
。但你已经知道了。
我想算一下
在setChecked(true)
上调用RadioButton
从isChecked()
返回true是没有意义的,因为RadioButton
已经检查过了。
我想计算肯定的答案,如果用户改变主意,则检查否减少是
将// if r1 or r3 are checked{
替换为if buttons[i].isChecked() {
答案 1 :(得分:0)
首先,您需要使用RadioGroup对每个Yes和No对进行分组,以便不允许在同一时间选择Both。
这是一个很好的起始资源 http://developer.android.com/resources/tutorials/views/hello-formstuff.html#RadioButtons
阅读此页面,我们将回答您的所有问题,包括如何设置OnClickListener
希望这有帮助