, , Android. RadioGroup android, RadioButtons , RadioGroup . , RadioButtons LinearLayout , , ( , RadioButton ).
RadioGroupCheckListener.java :
RadioGroupCheckListener.makeGroup(radioButton1, radioButton2, radioButton3, radioButton4);
RadioGroupCheckListener.java github RadioGroupCheckListener
import android.widget.CompoundButton;
public class RadioGroupCheckListener implements CompoundButton.OnCheckedChangeListener {
private CompoundButton[] allies;
public RadioGroupCheckListener(CompoundButton... allies){
this.allies = allies;
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
for (CompoundButton aly : allies) {
aly.setChecked(false);
}
}
}
private static CompoundButton[] exceptMe(CompoundButton[] buttons, int me){
CompoundButton[] result = new CompoundButton[buttons.length-1];
for(int i=0,j=0;i<buttons.length;i++){
if(i==me){
continue;
}
result[j]=buttons[i];
j++;
}
return result;
}
public static void makeGroup(CompoundButton... buttons){
for(int i=0;i<buttons.length;i++){
buttons[i].setOnCheckedChangeListener(new RadioGroupCheckListener(exceptMe(buttons, i)));
}
}
}