Radio Button findViewById within a Fragment
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;
}
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, 2022Comments
-
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>