检查单选按钮android的状态并计算答案

问题描述:

我按照@CommonsWare告诉我的方式编辑代码 当我尝试点击r1并且问题似乎是按钮[i] .isChecked()时,没有按;吨的工作 - >固定检查单选按钮android的状态并计算答案

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); 
    } 

    } 

基本上我有yes和no单选按钮。我想算的是答案,如果用户改变了主意,检查无递减是

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 WASN;吨初始化,我得到了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); 

    } 

问题的大小,这一次是它仍然被点击和不是回答“是” 我有以下问题需要解决

  • 算“是”的答案是++

  • 如果用户点击了第二次不计

  • 如果用户将他们的想法从“是”改变为“否”递减“是”

  • 如果用户按下“否​​”不计算任何东西(我的应用程序的重要部分是计算是的答案)

如何检查android中单选按钮的状态?

致电isChecked()。但你已经知道了。

而且我要指望他们

有呼吁在RadioButton返回从isChecked()setChecked(true)没有意义的,因为这RadioButton已被选中。

我想算的是答案,如果用户改变了主意,检查无递减是

替换您// if r1 or r3 are checked{if buttons[i].isChecked() {

+0

哦,我的错误与器isChecked()感谢您的提示 – Michiru 2011-06-03 20:00:02

+0

我试过你告诉我的方式,但它没有; t只与r1.isChecked()一起使用按钮[i] .isChecked()...我每次点击r1时都会关闭force,尽管有人建议像这样做,这种方法也计算点击,而不是答案。是否有另一种方式,我可以以某种方式计算单选按钮,如果他们已经检查不增加? – Michiru 2011-06-04 09:09:36

+0

@Michiru:在Eclipse中使用'adb logcat',DDMS或DDMS透视图来检查LogCat并查看与“强制关闭”相关的堆栈跟踪。 – CommonsWare 2011-06-04 11:00:03

首先,你需要使用一个RadioGroup中进行分组每个是和否对,因此不允许在同一时间选择两者。

这是一个伟大的起点资源 http://developer.android.com/resources/tutorials/views/hello-formstuff.html#RadioButtons

阅读本页面和您的所有问题将迎刃而解,包括如何设置OnClickListener

希望这有助于

+0

我已经把他们放在收音机组中,我忘了补充说:)。无论如何,谢谢你让我知道 – Michiru 2011-06-03 19:55:51