Dan
Dan

Reputation: 1

Coding Multiple RadioGroups

I'm creating a basic app in Android Studio:

There are 3 categories with a radio group for each category.

The user selects one button from each category then hits "Choose".

A Textview should show a message, e.g. "You chose Chinese, Level 1, Guess the City".

I've worked out how to say "You chose Chinese" but can't figure out how to add the rest using if conditions. Any ideas?

<TextView android:id="@+id/text" />
<RadioGroup android:id="@+id/radio1">
    <RadioButton id="@+id/chinese"
        android:text="@string/chinese" />
    <RadioButton android:id="@+id/indian"
        android:text="@string/indian" />
    <RadioButton android:id="@+id/russian"
        android:text="@string/russian" />
</RadioGroup>
<RadioGroup android:id="@+id/radio2">
    <RadioButton android:id="@+id/difficulty1"
        android:text="@string/starter" />
    <RadioButton android:id="@+id/difficulty2"
            android:text="@string/medium" />
    <RadioButton android:id="@+id/difficulty3"
            android:text="@string/expert" />
</RadioGroup>
<RadioGroup android:id="@+id/radio3">
    <RadioButton android:id="@+id/challenge1"
            android:text="@string/buildingbricks" />
    <RadioButton android:id="@+id/challenge2"
            android:text="@string/callcentre" />
    <RadioButton android:id="@+id/challenge3"
            android:text="@string/city" />
</RadioGroup>

public class MainActivity extends Activity {
    private RadioGroup radioGroup1
    private RadioButton chinese, indian, russian;
    private Button button;
    private TextView textView;

    public String string_first_radiogroup, 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        radioGroup1 = (RadioGroup) findViewById(R.id.radio1);


        radioGroup1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if(checkedId == R.id.chinese) {
                    string_first_radiogroup="Chinese";
                } else if(checkedId == R.id.indian) {
                    string_first_radiogroup="Indian"; 
                } else {
                    string_first_radiogroup="Russian";
                }
            }
        });

        chinese = (RadioButton) findViewById(R.id.chinese);
        indian = (RadioButton) findViewById(R.id.indian);
        russian = (RadioButton) findViewById(R.id.russian);
        textView = (TextView) findViewById(R.id.text);


        button = (Button)findViewById(R.id.choose);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                textView.setText("You chose " + string_first_radiogroup + " option");
            }
        });
    }
}

Upvotes: 0

Views: 54

Answers (1)

Pratik Popat
Pratik Popat

Reputation: 2999

Try below code:

button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                textView.setText("You chose " + ((RadioButton)findViewById(radioGroup1.getCheckedRadioButtonId())).getText() + " option");
            }
        });

Upvotes: 1

Related Questions