2015-11-09 172 views
1

我已經編程創建了5個單選按鈕,每個單選按鈕都有4個單選按鈕。問題是,當我第一次檢查第一個無線電組的單選按鈕,然後檢查同一個無線電組的第二個單選按鈕時,第一個單選按鈕仍然被選中。我能做些什麼來保證收音機組中所有單選按鈕的正常行爲? 這是我的代碼:如何在Android中選中單選按鈕時取消選中廣播組中的所有單選按鈕?

radioGroup = new RadioGroup[5]; 
    answer = new RadioButton[4]; 
    int i = 0; 
    for (Question qn : questions) { 
     radioGroup[i] = new RadioGroup(this); 
     int j = 0; 
     for (Answer an : answers) { 
      if (qn.getID() == an.getQuestion_id_answer()) { 
       answer[j] = new RadioButton(this); 
       answer[j].setText(an.getAnswer()); 
       radioGroup[i].addView(answer[j]); 
       j++; 
      } 
     } 
     linearLayout.addView(radioGroup[i]); 
     i++; 
    } 

謝謝!

回答

1

「檢查一個屬於RadioGroupRadioButton未取消選中同一組內的任何先前檢查過的RadioButton」。來源:developer.android.com

如果我理解正確的:你是在拒絕取消選中自己,當在同一RadioGroup另一個按鈕被選中相同RadioGroup談論4 RadioButtons

如果是這樣的話,只需給每個RadioButton一個不同的Resource ID,並且應該修復它。

+0

是的,你是對的。我從第一個廣播組檢查的第一個單選按鈕仍然被檢查。每個廣播組都發生這種情況。但是,例如在第二個電臺組中,我檢查了2個單選按鈕後,第二個電臺仍然被檢查。 我設置'radioGroup [i] .setId(i);'和'answer [j] .setId(j);'有不同的id,但沒有任何改變。任何其他想法? –

+0

嘗試像這樣設置標識'answer [j] .setId(i +「_」+ j);',因爲如果你有多個收音機組,它們中的按鈕將具有相同的ID。 –

+0

不起作用。這是錯誤:View中的setId(int)無法應用於java.lang.string。我能怎麼做? –

相關問題