Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

setting up a RadioGroup programmatically

Tags:

android

I'd like to create a custom View which contains a RadioGroup. Inside of the RadioGroup I'd like the RadioButtons to be set up so that the first RadioButton is at the top left, the 2nd one is below that, the third to the right of the 1st one and the 4th one underneath that. In other words, I want to create a group where the radiobuttons are laid out in a square of sorts. I think if I set the orientation of the group to be vertical, then all the radiobuttons will be in a straight line. If, on the other hand, I set the orientation to horizontal, then, again, the radiobuttons will all be in a straight line, going horizontal. Is there a way to do what I want or am I forced to set up two separate RadioGroups, both to horizontal orientation?

like image 963
LuxuryMode Avatar asked Jun 13 '11 14:06

LuxuryMode


People also ask

What is radiogroup control in Android Studio?

Android - RadioGroup Control. A RadioGroup class is used for set of radio buttons. If we check one radio button that belongs to a radio group, it automatically unchecks any previously checked radio button within the same group.

What is a radiogroup class in Java?

A RadioGroup class is used for set of radio buttons. If we check one radio button that belongs to a radio group, it automatically unchecks any previously checked radio button within the same group.

What is radiogroup class in Salesforce?

A RadioGroup class is used for set of radio buttons. If we check one radio button that belongs to a radio group, it automatically unchecks any previously checked radio button within the same group. Following are the important attributes related to RadioGroup control.


1 Answers

Try processing the RadioButtons without the use of RadioGroup.

Wire-up the individual RadioButtons and hold them in an ArrayList<RadioButton>.

List<RadioButton> radioButtons = new ArrayList<RadioButton>();

radioButtons.add( (RadioButton)findViewById(R.id.button1) );        
radioButtons.add( (RadioButton)findViewById(R.id.button2) );
radioButtons.add( (RadioButton)findViewById(R.id.button3) );
etc.

Set an OnCheckedChangeListener for each RadioButton.

for (RadioButton button : radioButtons){

    button.setOnCheckedChangeListener(new OnCheckedChangeListener(){
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) processRadioButtonClick(buttonView);
        }   
    });

}

Then create a method to uncheck the unselected RadioButtons.

private void processRadioButtonClick(CompoundButton buttonView){

    for (RadioButton button : radioButtons){

        if (button != buttonView ) button.setChecked(false);
    }

}

Using this approach, the RadioButtons can be located anywhere within the XML layout.

like image 157
Matt Avatar answered Oct 10 '22 13:10

Matt