public class SettingsFragment extends Fragment {
RadioGroup radioGroup;
public static final String APP_PREFERENCES = "MY_SETTINGS";
final String KEY_RADIOBUTTON_INDEX = "SAVED_RADIO_BUTTON_INDEX";
@Override public View onCreateView(
@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.settings_fragment, null);
radioGroup = view.findViewById(R.id.radioGroup);
radioGroup
.setOnCheckedChangeListener(radioGroupOnCheckedChangeListener);
LoadPreferences();
return super.onCreateView(inflater, container, savedInstanceState);
}
RadioGroup.OnCheckedChangeListener radioGroupOnCheckedChangeListener = new RadioGroup.OnCheckedChangeListener(){
@Override public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
RadioButton checkedRadioButton = radioGroup.findViewById(checkedId);
int checkedIndex = radioGroup.indexOfChild(checkedRadioButton);
SavePreferences(KEY_RADIOBUTTON_INDEX, checkedIndex);
}
};
public void SavePreferences(String key, int value){
SharedPreferences sharedPreferences = getSharedPreferences(
APP_PREFERENCES, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(key, value);
editor.apply();
}
private void LoadPreferences() {
SharedPreferences sharedPreferences = getSharedPreferences(
APP_PREFERENCES, MODE_PRIVATE);
int savedRadioIndex = sharedPreferences.getInt(
KEY_RADIOBUTTON_INDEX, 0);
RadioButton savedCheckedRadioButton = (RadioButton) radioGroup
.getChildAt(savedRadioIndex);
savedCheckedRadioButton.setChecked(true);
}
}