我正在尝试保存应用程序被杀死并通过SharedPreferences
重新启动时切换按钮的状态。
我可以在/data/data/myapp/shared_prefs
上看到写入值为true / false的xml,但每次我杀死并重新启动应用程序时,我都会让代码读取首选项。
按钮只是重置为默认状态,在我的情况下为true。在我的情况下,我在片段上运行它;所以我不得不使用:
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)
答案 0 :(得分:4)
这一行:
if (tg1pref = true) {
应该是:
if (tglpref){ // Meaning and same as if (tglpref == true)
那里有一个错字!