当应用程序被杀死并通过 重新启动时,我正在尝试保存切换按钮的状态SharedPreferences
。
我可以看到/data/data/myapp/shared_prefs
值 true/false 的 xml 被写入,但我坚持让代码在每次我杀死并重新启动应用程序时读取首选项。
该按钮只是重置为默认状态,在我的情况下是真的。就我而言,我在一个片段上运行它;所以我不得不使用:
final SharedPreferences preferences = this.getActivity().getSharedPreferences("tg1pref",0);
这是我的代码:
boolean on;
public SharedPreferences preferences;
final ToggleButton toggleButton1 = (ToggleButton) v.findViewById(R.id.toggleButton1);
final SharedPreferences preferences = this.getActivity().getSharedPreferences("tg1pref",0);
boolean tg1pref = preferences.getBoolean("tg1pref", true);
if (tg1pref = true) {
toggleButton1.setChecked(true);
} else {
toggleButton1.setChecked(false);
}
toggleButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if((toggleButton1.isChecked())) {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("tg1pref", true); // value to store
editor.commit();
} else {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("tg1pref", false); // value to store
editor.commit();
}
}
});
谢谢您的帮助!
用 t0mm13b 方法解决:
if (tg1pref = true) {
//That should be:
if (tglpref){ // Meaning and same as if (tglpref == true)