Android的切换按钮随时查询 [英] Android ToggleButton always check
问题描述
我要在共享preferences存储是否经过切换按钮或取消。
toggle.setOnCheckedChangeListener(新OnCheckedChangeListener(){
公共无效onCheckedChanged(CompoundButton buttonView,布尔器isChecked)
如果(器isChecked){
共享preferences.Editor编辑= getShared preferences(共享prefName,MODE_PRIVATE).edit();
editor.putBoolean(检查,真正的);
editor.commit();
}
其他 {
共享preferences.Editor编辑= getShared preferences(共享prefName,MODE_PRIVATE).edit();
editor.putBoolean(NOCHECK,假);
editor.commit();
}
}});
但是,当我测试,它总是被设置检查
在的OnCreate()
我说的:
共享preferences preferences = getShared preferences(共享prefName,MODE_PRIVATE);
布尔值1 = preferences.getBoolean(检查,真正的);
如果(值1 =共享prefs.getBoolean(检查,真)){
psw.setChecked(值1);
}其他 {
psw.setChecked(假);
}
在OnCheckedChangeListener,如果复选框被选中,为您节省检查
= 真正的
。装载时,该如果
将永远是真实的,因为你的价值比较本身(或你给作为默认真
),所以它会检查框。
如果该复选框未选中,为您节省 NOCHECK
= 假
。装载时,没有检查
preference(或它有previously保存真
值)所以默认真
加载。
修复您的code:
监听器的方法体:
共享preferences.Editor编辑= getShared preferences(共享prefName,MODE_PRIVATE).edit();
editor.putBoolean(检查,器isChecked);
editor.commit();
加载code(更换第二片段与此):
psw.setChecked(preferences.getBoolean(检查,FALSE));
I want to store in SharedPreferences if the toggle button is Checked or uncheck.
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
if(isChecked){
SharedPreferences.Editor editor = getSharedPreferences("SharedPrefName", MODE_PRIVATE).edit();
editor.putBoolean("check", true);
editor.commit();
}
else {
SharedPreferences.Editor editor = getSharedPreferences("SharedPrefName", MODE_PRIVATE).edit();
editor.putBoolean("nocheck", false);
editor.commit();
}
}});
But when I test this, it is always set to check
in OnCreate()
I added this:
SharedPreferences preferences = getSharedPreferences("SharedPrefName", MODE_PRIVATE);
boolean value1 = preferences.getBoolean("check", true);
if (value1 = sharedPrefs.getBoolean("check", true)){
psw.setChecked(value1);
}else {
psw.setChecked(false);
}
In the OnCheckedChangeListener, if the checkbox is checked, you save check
= true
. When loading, the if
will always be true, since you are comparing the value to itself (or the default which you gave as true
) so it checks the box.
If the checkbox is not checked, you save nocheck
= false
. When loading, there is no check
preference (or it has the previously saved true
value) so the default true
is loaded.
Fixing your code:
Listener method body:
SharedPreferences.Editor editor = getSharedPreferences("SharedPrefName", MODE_PRIVATE).edit();
editor.putBoolean("check", ischecked);
editor.commit();
Loading code (replace the second snippet with this):
psw.setChecked(preferences.getBoolean("check", false));
这篇关于Android的切换按钮随时查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!