2011-06-03 71 views
0

我按照@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); 

    } 

問題的大小,這一次是它仍然被點擊和不是回答「是」 我有以下問題需要解決

  • 算「是」的答案是++

  • 如果用戶點擊了第二次不計

  • 如果用戶將他們的想法從「是」改變爲「否」遞減「是」

  • 如果用戶按下「否​​」不計算任何東西(我的應用程序的重要部分是計算是的答案)

回答

0

如何檢查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

0

首先,你需要使用一個RadioGroup中進行分組每個是和否對,因此不允許在同一時間選擇兩者。

這是一個偉大的起點資源 http://developer.android.com/resources/tutorials/views/hello-formstuff.html#RadioButtons

閱讀本頁面和您的所有問題將迎刃而解,包括如何設置OnClickListener

希望這有助於

+0

我已經把他們放在收音機組中,我忘了補充說:)。無論如何,謝謝你讓我知道 – Michiru 2011-06-03 19:55:51