0
我已经使用共享首选项存储了复选框值(选中/取消选中),但在关闭并重新打开应用程序时传递复选框的动作时/遇到问题。
说明:单击复选框时不同活动中的按钮隐藏/显示(即,check =显示&取消选中=隐藏)正常工作。
当我关闭应用程序,并重新打开该复选框撑检查,但是按钮未出现使用共享偏好重新打开应用程序的复选框传递操作
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();
}
});
}
我试图实现在onStart()将数据传递
复选框代码保存提供的if-else条件
@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);
}
我很困惑你的流量。假设你有两个活动:'Activity1' [A1](带复选框)和'Activity2' [A2](带按钮)。您可以将适当的值从“A1到A2”传递。当你说你把应用程序的背景。那之后流量究竟是什么? – Shaishav
@Shaishav我不把应用程序放在后台我完全关闭应用程序并重新开始,当我再次启动应用程序时,checbox(add_fb)被选中,但是需要显示的不同活动中的按钮不显示 (我可以简单介绍聊天过程,但我不知道如何开始) –
Put:'isCheckedValue = preferences.getBoolean(“checked”,false); checkBox.setChecked(isCheckedValue);'当前你调用checkBox.setChecked()的地方。 – Shaishav