SharedPreferences大部分时间都没有保存

时间:2015-07-26 13:14:49

标签: android android-fragments sharedpreferences

我在片段类中使用SharedPreferences来存储我在其他活动中需要的R.id个值RadioButton。{一切都很好,有一个小的#34;但是"。

有六个RadioGroup在场。如果我不按第一组中的按钮(即使是已选中的按钮),无论我在其他组中更改了什么,下次打开活动时都不会保存任何内容。如果我按下第一个Radiogroup,则存储我更改的任何内容。

我甚至尝试检查代码中的按钮,但没有工作。

orientationID是必须"更改"

片段内的onCreateView声明

SharedPreferences settings = this.getActivity().getSharedPreferences(MY_PREFS, Context.MODE_PRIVATE);
initPrefs();

initPrefs()

     private void initPrefs(){
        if(settings.getBoolean("firstOrientationID", false)){
            frg.check(R.id.button1);
        }
        else if(settings.getBoolean("secondOrientationID", true)){
            frg.check(R.id.button2);
        }
        else frg.check(R.id.button3);
        modeFL = settings.getInt("flMode", 2);
        modeSL = settings.getInt("slMode", -1);
        switch (modeFL){
            case 1:
                lessons.check(R.id.lesson1);
                break;
            case 2:
                lessons.check(R.id.lesson2);
                break;
            case 3:
                lessons.check(R.id.lesson3);
                break;
        }
        if(settings.getBoolean("extraLesson", false)){
            numGroup.check(R.id.lessons_five);
            secLess.setVisibility(View.VISIBLE);
            switch (modeSL){
                case 1:
                    slessons.check(R.id.slesson1);
                    break;
                case 2:
                    slessons.check(R.id.slesson2);
                    break;
                case 3:
                    slessons.check(R.id.slesson3);
                    break;
            }
        }
        else numGroup.check(R.id.lessons_four);

        if(settings.getBoolean("specialYNID", false)){
            spGroupYN.check(R.id.sp_yes);
            specMult.setVisibility(View.VISIBLE);
        }
        else spGroupYN.check(R.id.sp_no);

        if(settings.getBoolean("specialMultID", true)){
              spGroup.check(R.id.sp_2x);
        }
        else spGroup.check(R.id.sp_1x);
    }

当" Next"按下按钮离开活动

    private void nextButton(){
        SharedPreferences.Editor editor = settings.edit();
        editor.putBoolean("extraLesson", num5.isChecked());
        editor.putBoolean("firstOrientationID", addBtn.isChecked());
        editor.putBoolean("secondOrientationID", addBtn2.isChecked());
        editor.putBoolean("specialYNID", spyes.isChecked());
        editor.putBoolean("specialMultID", sp2x.isChecked());
        editor.putInt("flMode", modeFL);
        editor.putInt("slMode", modeSL);
        editor.commit();
    }

我错过了什么吗?这是我第一次使用SharedPreferences,我无法在网上找到任何相关信息。

0 个答案:

没有答案