2015-11-09 132 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。我能怎么做? –

相关问题