如何在android中保存Fragment的状态?

时间:2014-07-23 12:29:55

标签: android sdk fragment

我的片段只有一个切换开关。应用程序现在正在做什么:用户打开应用程序并在导航抽屉上选择“笔记本电脑”,然后他看到一个开关(它是一个“滑块”,您可以打开或关闭...希望您了解我的内容意思)。用户将开关设置为ON然后关闭应用程序并重新打开它并且开关关闭......但它不应该关闭...它应该打开,就像用户设置它我该怎么做?交换机应保存其状态,用户如何选择它。 我需要mysql还是什么?

(顺便说一句,我使用的是Android Studio)

我希望你明白我的意思

由于

2 个答案:

答案 0 :(得分:0)

尝试使用共享首选项来保存应用程序数据,应用程序可以在应用程序再次启动时将数据保存在共享首选项中,它可以再次从共享首选项加载数据...希望它有所帮助:)

答案 1 :(得分:0)

您应该使用SharedPreferences来保存Switch捕获的数据。请尝试以下方法。

(在初始化其他内容后,在你的onViewCreated中)

Switch mySwitch = (Switch) findViewById(R.id.mySwitch); // or however else you want to initialize it
final String SWITCH_BOOLEAN = "switchBoolean";
final String PREFERENCE_NAME = "sharedPreferenceFile";
final SharedPreferences prefs = getActivity().getSharedPreferences(PREFERENCE_NAME, 0); // change the name to what you want, this is an xml file that stores your preferences
final SharedPreferences.Editor prefsEditor = prefs.getEditor();

mySwitch.setChecked(prefs.getBoolean(SWITCH_BOOLEAN, false); //also change this name to what you want.

mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener(){
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        prefsEditor.putBoolean(SWITCH_BOOLEAN, isChecked);
        prefsEditor.apply();
    }
});

有关SwitchP的信息,请参阅SharedPreferences以获取有关SharedPreferences和this的信息。

请记住,为首选项名称提供的字符串区分大小写,并且需要相同才能获得相同的首选项。