2016-08-13 6 views
1

Я программно создать серию кнопок радио в радио-группы:Android Radio Group множественный выбор вопрос

for (Soldier soldier:clickedSquad.getMembers()) { 
       Integer I=0; 
       soldier.setId(I); 
       RadioButton radiobutton=new RadioButton(getContext()); 
       radiobutton.setText(soldier.toString()); 
       radiobutton.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
       radiobutton.setId(soldier.getId()); 
       I++; 
       soldierRgrp.addView(radiobutton); 
      } 

Это создает радиокнопки, как я собираюсь, но когда я нажимаю несколько все они остаются щелкнул как флажок , и мне нужно только одно, которое нужно щелкнуть в то время, как обычно делают радиолюбители.

Любая идея, почему это происходит?

RadioGroup находится в XML и выглядит следующим образом:

<RadioGroup 
    android:layout_margin="10dp" 
    android:id="@+id/reg_rgrp_soldiers" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
</RadioGroup> 

ответ

3

Radiobuttons вести себя таким образом только тогда, когда они же id. В вашем случае они это делают! Вы каждый раз инициализируете свою переменную I=0. Следовательно, каждому солдату дается то же самое id. Солдатам это не особенно нравится! Измените свой код на:

 int i=0; 
     for (Soldier soldier:clickedSquad.getMembers()) { 
      soldier.setId(i++); 
      RadioButton radiobutton=new RadioButton(getContext()); 
      radiobutton.setText(soldier.toString()); 
      radiobutton.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
      radiobutton.setId(soldier.getId()); 
      soldierRgrp.addView(radiobutton); 
     } 
+0

Это сработало! Большое спасибо!! –