Радиогруппа не сохраняет правильно - PullRequest
0 голосов
/ 26 января 2012

После долгих проб и ошибок я решил задать этот вопрос. Я не могу сохранить свой идентификатор группы радиостанций, поэтому, когда я возвращаюсь к активности, в которой используются радиокнопки, все они снова пусты.

Вот мой код:

public class Random extends Activity implements RadioGroup.OnCheckedChangeListener, OnClickListener {

... ...

Вот как я фиксирую установленный переключатель с идентификатором радиоблокировки

public void onCheckedChanged (RadioGroup group, int checkedId) {

        int profileGroup_CheckId = profileGroup.getCheckedRadioButtonId();
        int configGroup_CheckId = configGroup.getCheckedRadioButtonId();

        SharedPreferences profileGroupPrefs = getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE);
        SharedPreferences.Editor prefsEditor = profileGroupPrefs.edit();
        prefsEditor.putInt("profileGroup_CheckId", profileGroup_CheckId);
        prefsEditor.putInt("configGroup_CheckId", configGroup_CheckId);
        prefsEditor.commit();
}

и я добавил это в onCreate

public void onCreate(Bundle savedInstanceState) {
    SharedPreferences profileGroupPrefs = this.getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE);
    profileGroupPrefs.getInt("profileGroup_CheckId", 0);
    profileGroupPrefs.getInt("configGroup_CheckId", 0);

Теперь из значений сохраняются в shared_prefs моего приложения, так как я проверил profileGroup.xml, но кнопки Radio не проверяются, когда я возвращаюсь.

Я пробовал много других способов, перечисленных здесь пользователями, но ни один из них не работал. Некоторая помощь будет принята с благодарностью.

1 Ответ

3 голосов
/ 26 января 2012

попробуйте это.

public void onCheckedChanged (RadioGroup group, int checkedId) {    
    int profileGroup_CheckId = profileGroup.getCheckedRadioButtonId();
    int configGroup_CheckId = configGroup.getCheckedRadioButtonId();

    SharedPreferences profileGroupPrefs = getSharedPreferences("profileGroupPrefs", MODE_WORLD_WRITABLE);
    SharedPreferences.Editor prefsEditor = profileGroupPrefs.edit();
    prefsEditor.putInt("profileGroup_CheckId", profileGroup_CheckId);
    prefsEditor.putInt("configGroup_CheckId", configGroup_CheckId);
    prefsEditor.commit();
)

public void onResume() {
super.onResume();
SharedPreferences profileGroupPrefs = this.getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE);
    int a=  profileGroupPrefs.getInt("profileGroup_CheckId", 0);
    int b=  profileGroupPrefs.getInt("configGroup_CheckId", 0);
     profileGroup.check(a); 
     configGroup.check(b);
    }
...