我已经使用共享首选项存储了复选框值(选中/取消选中),但在关闭和重新打开应用程序时/上传递复选框操作时遇到问题。
说明:单击复选框(即check = shows& uncheck = hides)正常工作时,不同动作中的按钮会隐藏/显示。
当我关闭应用程序并重新打开复选框时,保持选中但按钮未显示
使用共享偏好设置保存的复选框代码
final CheckBox checkBox = (CheckBox) findViewById(R.id.add_fb);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
final SharedPreferences.Editor editor = preferences.edit();
checkBox.setChecked(preferences.getBoolean("checked",false));
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
isCheckedValue = isChecked;
editor.putBoolean("checked", isChecked);
editor.apply();
}
});
}
我尝试通过提供if-else条件
来实现onStart()以传递数据@Override
protected void onStart() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
final SharedPreferences.Editor editor = preferences.edit();
super.onStart();
if(checkBox.isChecked()) {
editor.putBoolean("checked", true);
editor.apply();
}else{
editor.putBoolean("checked", false);
editor.apply();
}
}
这是我在检查复选框后传递数据的地方
@Override
public void onBubbleClick(BubbleLayout bubble) {
Intent in = new Intent(MainActivity.this, PopUpWindow.class);
in.putExtra("yourBoolName", isCheckedValue );
startActivity(in);
}
答案 0 :(得分:0)
而不是在'onBubbleClickMethod'中发送'isCheckedValue' 试试这个 -
in.putExtra( “yourBoolName”,preferences.getBoolean( “选中”,假));