how to attach a listener to a radio button
Asked Answered
G

2

8

I have an activity that displays various radiobuttons. The radiobuttons are grouped in radiogroups. I want some of the radiobutton to disappear when a certain radiobutton is checked. eg when the incident button is checked the fall, trip and illness radiobutton disappear. how can i achieve this?

I have the foolowing code but need to somehow attach a listener to the incident button.

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.reportsomethinglayout);

         resolution = (EditText)findViewById(R.id.editTextresolution);
        // resolution.setInputType(InputType.TYPE_NULL);
        // showSoftKeyboard(resolution);



         accident  = (RadioButton)findViewById(R.id.radioButtonaccident);
         incident  = (RadioButton)findViewById(R.id.radioButtonincident);
         concern  = (RadioButton)findViewById(R.id.radioButtonconcern);
         fall  = (RadioButton)findViewById(R.id.radioButtonfall);
         trip  = (RadioButton)findViewById(R.id.radioButtonTrip);
         illness  = (RadioButton)findViewById(R.id.radioButtonillness);





    }



     public void onRadioButtonClicked(View view) {
            // Is the button now checked?
            boolean checked = ((RadioButton) view).isChecked();

            // Check which radio button was clicked
            switch(view.getId()) {
                case R.id.radioButtonaccident:
                    if (checked)
                        Log.e(TAG, "accident radiobutton checked");
                    break;
                case R.id.radioButtonincident:
                    if (checked)
                        Log.e(TAG, "incident radiobutton checked");

                            fall.setVisibility(View.GONE);
                            trip.setVisibility(View.GONE);
                            illness.setVisibility(View.GONE);
                    break;
            }
        }

.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/carefreebgscaledalphajpg" >
<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
   <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/linearlayoutasscrollneedsonenamedchild" >
<TextView
        android:id="@+id/reportsomethingtitletextview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Carer Reporting"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_gravity="center" />


       <TextView
        android:id="@+id/textViewcategory"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Category" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

     <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">   


     <RadioButton
        android:id="@+id/radioButtonaccident"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Accident" />

    <RadioButton
        android:id="@+id/radioButtonincident"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Incident" />

    <RadioButton
        android:id="@+id/radioButtonconcern"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Concern" />

    </RadioGroup>


    </LinearLayout>

    <TextView
        android:id="@+id/textViewspacer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="" />


    <TextView
        android:id="@+id/textViewtype"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Type" />

     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">   

     <RadioButton
        android:id="@+id/radioButtonfall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Fall" />

    <RadioButton
        android:id="@+id/radioButtonTrip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Trip" />

    <RadioButton
        android:id="@+id/radioButtonillness"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Illness" />

    </RadioGroup>

    </LinearLayout>

     <TextView
        android:id="@+id/textViewspacer2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="" />


    <TextView
        android:id="@+id/textViewaction"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Action" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

     <RadioButton
        android:id="@+id/radioButtonCallDoctor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Call Doctor" />

    <RadioButton
        android:id="@+id/radioButtoncalledkin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Called next of kin" />



    </RadioGroup>

    </LinearLayout>

    <TextView
        android:id="@+id/textViewspacer3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="" />


    <TextView
        android:id="@+id/textViewresolution"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Resolution" />

    <EditText
        android:id="@+id/editTextresolution"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="1"
        android:lines="8"
        android:inputType="textMultiLine"
         >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/buttonsubmit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Submit" />

    </LinearLayout>
</ScrollView> 
</LinearLayout>
Gdynia answered 23/11, 2012 at 12:39 Comment(0)
A
17

try like this:-

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

group.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) 
       {
        // TODO Auto-generated method stub
        if(radiobutton1.isChecked()) {
             fall.setVisibility(View.GONE);
             trip.setVisibility(View.GONE);
             illness.setVisibility(View.GONE);
        } else if(radiobutton2.isChecked()) {

        }
     }
});
Aspect answered 23/11, 2012 at 12:45 Comment(0)
G
12

You can set a listener on a RadioGroup with setOnCheckedChangeListener. The onCheckedChanged callback receives the ID of the newly checked button in the checkedId parameter.

In your case, just add an ID to your radio group (in order to retrieve it from your code)

<RadioGroup
    android:id="@+id/category_group"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

And use the following code:

RadioGroup categoryGroup = (RadioGroup) findViewById(R.id.category_group);
categoryGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
    switch(checkedId) {
        case R.id.radioButtonincident:
            // 'Incident' checked
            fall.setVisibility(View.GONE);
            trip.setVisibility(View.GONE);
            illness.setVisibility(View.GONE);
            break;
        case R.id.radioButtonaccident:
            // 'Accident' checked
            break;
        case R.id.radioButtonconcern:
            // 'Concern' checked
            break;
        }
    }
});
Glossy answered 23/11, 2012 at 12:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.