PeakGen
PeakGen

Reputation: 23025

Able to select both radio buttons in same group

Please have a look at the following code

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffffff" >

    <RadioGroup
        android:id="@+id/save_selection_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_toRightOf="@+id/save_txt" >
    </RadioGroup>

    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_alignBottom="@+id/save_txt"
        android:layout_toRightOf="@+id/save_selection_group"
        android:checked="true"
        android:text="SD" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/radio0"
        android:layout_alignBottom="@+id/radio0"
        android:layout_toRightOf="@+id/radio0"
        android:text="Phone" />

    <TextView
        android:id="@+id/save_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="22dp"
        android:paddingTop="5dp"
        android:text="@string/save_to" />

    <TextView
        android:id="@+id/save_name_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_marginTop="50dp"
        android:text="@string/save_name" />

    <EditText
        android:id="@+id/save_name_edt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_toRightOf="@+id/save_name_txt"
        android:layout_alignBaseline="@+id/save_name_txt"
        android:layout_marginLeft="15dp"
        android:paddingBottom="10dp"
        android:ems="8" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/save_voice_note_button"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_toRightOf="@+id/save_name_edt"
        android:layout_alignBaseline="@+id/save_name_edt"
        android:layout_marginLeft="5dp"
        android:text="@string/save" />

</RelativeLayout>

Java code

private class SaveEvent implements OnClickListener
    {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            final Dialog dialog = new Dialog(VoiceNotes.this);
            dialog.setContentView(R.layout.save_dialog);
            dialog.setTitle("Save your file");
            dialog.show();

            final Button saveButton = (Button)dialog.findViewById(R.id.save_voice_note_button);
            final RadioGroup saveLocationRadioGroup = (RadioGroup)dialog.findViewById(R.id.save_selection_group);

            final String spokenText = voiceEdt.getText().toString();


            //Writing the Event handler for the Save button
            saveButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    int selectedLocationId = saveLocationRadioGroup.getCheckedRadioButtonId();
                    RadioButton saveLocationRadioButton = (RadioButton)dialog.findViewById(selectedLocationId);

                    if(saveLocationRadioButton.getText().equals("SD"))
                    {
                        }

                }
            });


        }

}

In here, I am able to select both the radio buttons! But you know, that is the purpose of them. One should select! Why is that?

Upvotes: 0

Views: 470

Answers (4)

Avijit
Avijit

Reputation: 3824

Change your xml like this:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffffff" >

    <RadioGroup
        android:id="@+id/save_selection_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_toRightOf="@+id/save_txt" >


    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_alignBottom="@+id/save_txt"
        android:layout_toRightOf="@+id/save_selection_group"
        android:checked="true"
        android:text="SD" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/radio0"
        android:layout_alignBottom="@+id/radio0"
        android:layout_toRightOf="@+id/radio0"
        android:text="Phone" />
    </RadioGroup>

    <TextView
        android:id="@+id/save_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="22dp"
        android:paddingTop="5dp"
        android:text="savegsdg" />

    <TextView
        android:id="@+id/save_name_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_marginTop="50dp"
        android:text="fdgg" />

    <EditText
        android:id="@+id/save_name_edt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_toRightOf="@+id/save_name_txt"
        android:layout_alignBaseline="@+id/save_name_txt"
        android:layout_marginLeft="15dp"
        android:paddingBottom="10dp"
        android:ems="8" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/save_voice_note_button"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_toRightOf="@+id/save_name_edt"
        android:layout_alignBaseline="@+id/save_name_edt"
        android:layout_marginLeft="5dp"
        android:text="fdgdfg" />

</RelativeLayout>

Upvotes: 0

KOTIOS
KOTIOS

Reputation: 11194

Change this code :

<RadioGroup
        android:id="@+id/save_selection_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_toRightOf="@+id/save_txt" >


    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_alignBottom="@+id/save_txt"
        android:layout_toRightOf="@+id/save_selection_group"
        android:checked="true"
        android:text="SD" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/radio0"
        android:layout_alignBottom="@+id/radio0"
        android:layout_toRightOf="@+id/radio0"
        android:text="Phone" />
 </RadioGroup>

Upvotes: 0

Vigbyor
Vigbyor

Reputation: 2604

place your </RadioGroup> after second radio button. like below,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffffff" >

    <RadioGroup
        android:id="@+id/save_selection_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_toRightOf="@+id/save_txt" >


    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_alignBottom="@+id/save_txt"
        android:layout_toRightOf="@+id/save_selection_group"
        android:checked="true"
        android:text="SD" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/radio0"
        android:layout_alignBottom="@+id/radio0"
        android:layout_toRightOf="@+id/radio0"
        android:text="Phone" />
    </RadioGroup>

    <TextView
        android:id="@+id/save_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="22dp"
        android:paddingTop="5dp"
        android:text="@string/save_to" />

    <TextView
        android:id="@+id/save_name_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_marginTop="50dp"
        android:text="@string/save_name" />

    <EditText
        android:id="@+id/save_name_edt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_toRightOf="@+id/save_name_txt"
        android:layout_alignBaseline="@+id/save_name_txt"
        android:layout_marginLeft="15dp"
        android:paddingBottom="10dp"
        android:ems="8" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/save_voice_note_button"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_toRightOf="@+id/save_name_edt"
        android:layout_alignBaseline="@+id/save_name_edt"
        android:layout_marginLeft="5dp"
        android:text="@string/save" />

</RelativeLayout>

Upvotes: 0

RamonBoza
RamonBoza

Reputation: 9038

You need to add your radiobutton into a RadioGroup

as an example:

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioButton android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/pirates"
        android:onClick="onRadioButtonClicked"/>
    <RadioButton android:id="@+id/radio_ninjas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/ninjas"
        android:onClick="onRadioButtonClicked"/>
</RadioGroup>

Upvotes: 2

Related Questions