当应用程序被终止并通过 SharedPreferences 重新启动时,我试图保存切换按钮的状态。
我可以在 /data/data/myapp/shared_prefs
上看到写入值为 true/false 的 xml,但我坚持让代码在每次杀死时读取首选项并重新启动应用程序。
该按钮只是重置为默认状态,在我的例子中是这样。就我而言,我在 fragment 上运行它;所以我不得不使用:
最终 SharedPreferences 首选项 = 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)
最佳答案
这一行:
if (tg1pref = true) {
应该是:
if (tglpref){ // Meaning and same as if (tglpref == true)
里面有一个错别字!
关于android - 共享首选项不读取按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14489384/