Radio Button findViewById within a Fragment

11,784

Change your code like this:

@Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        myView = inflater.inflate(R.layout.settings_layout, container, false);


        RadioGroup radioGroup = (RadioGroup) myView .findViewById(R.id.radioGroup);

        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
        {
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // checkedId is the RadioButton selected

                switch(checkedId) {
                    case R.id.radioButton7:
                        // switch to fragment 1
                        break;
                    case R.id.radioButton6:
                        // Fragment 2
                        break;
                }
            }
        });

        return myView;
    }
Share:
11,784
James Robert Singleton
Author by

James Robert Singleton

For the past 2 years I have worked in the technology field from technical support all the way to associate software developer. After discovering my passion for coding, I couldn't get enough. I made applications to help my fellow technical support members solve issues better, created automation scripts and I am currently helping my team transition to React JavaScript. I am passionate for building new things and keeping up with the latest in coding technologies.

Updated on June 12, 2022

Comments

  • James Robert Singleton
    James Robert Singleton about 2 years

    I have looked around and implemented some of the things that I have found in order to get the findViewById to work inside my Fragment. However, I get either the cannot resolve method findViewById or I get "Unreachable Statement." I am not entirely sure where I am going wrong.

    Here is the code for my Fragment.

    import android.app.Fragment;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.RadioGroup;
    
    /**
     * Created by James Singleton on 8/8/2016.
     */
    
    public class SettingsFragment extends Fragment
    {
        View myView;
    
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            myView = inflater.inflate(R.layout.settings_layout, container, false);
            return myView;
    
            RadioGroup radioGroup = (RadioGroup) getView().findViewById(R.id.radioGroup);
    
            radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
            {
                public void onCheckedChanged(RadioGroup group, int checkedId) {
                    // checkedId is the RadioButton selected
    
                    switch(checkedId) {
                        case R.id.radioButton7:
                            // switch to fragment 1
                            break;
                        case R.id.radioButton6:
                            // Fragment 2
                            break;
                    }
                }
            });
        }
    }
    

    And here is my code for the layout

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

    <TextView
        android:text="Use Cell Data to retrieve driving data:"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"
        android:textSize="18sp"
        android:textColor="@color/cast_expanded_controller_background_color"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true" />
    
    <RadioGroup
        android:layout_width="89dp"
        android:layout_height="69dp"
        android:weightSum="1"
        android:layout_below="@+id/textView"
        android:id="@+id/radioGroup">
    
        <RadioButton
            android:text="Enable"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButton7"
            android:layout_weight="1" />
    
        <RadioButton
            android:text="Disable"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButton6"
            android:layout_weight="1"
            android:checked="true" />
    </RadioGroup>