如何在应用程序重新启动后始终选中复选框,直到用户在 android 中取消选中它?
How to checkbox checked always even after app relaunch until user uncheck it in android?
我的问题很简单,我想选中复选框以确保即使应用程序已关闭并重新启动。这个过程应该继续,直到用户自己取消选中它。如果用户自己取消选中它,那么应该取消选中直到用户在 android 中再次选中它。
请指导我该怎么做。
为此,您必须全局使用 SharedPreferance
来存储复选框的默认值并在首选项中更改值 onCheckChange
并且在查看加载时根据首选项中的标志设置复选框的状态
在 sharedPreferences 或 localDB 中为用户操作保留一个布尔标志。并且默认情况下将此标志的值保持为 true。当用户单击复选框时,也会更新此标志的值。因此,无论何时启动应用程序,检查此标志的值,如:-
if(checkBoxEnabled) {
checkBox.setEnabled(true);
} else {
checkBox.setEnabled(false);
}
在 xml 布局中添加复选框的地方,添加 android:checked="true"
进行初始检查。
当您监听值的变化时,将状态添加到 SharedPreferences
。例如onCheckedChanged()
SharedPreferences sp = getSharedPreferences(getPackageName(), MODE_PRIVATE);
sp.edit.putBoolean("check_status", checkBox.isChecked()).apply();
使用这一简单的代码......
使用SharedPreferences
保持复选框的状态。
正在初始化....
checkBox.setChecked(getSharedPreferences("MyAPP", Context.MODE_PRIVATE).getBoolean("checkBox", true));
OnCheckedChangeListener
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
getSharedPreferences("MyAPP", Context.MODE_PRIVATE).edit().putBoolean("checkBox", isChecked).commit();
}
});
第一次所有的复选框都被选中,它会像你想要的那样工作....
以上代码只针对一个复选框。对其他复选框尝试相同的方法。只需更改所有复选框的唯一键,就像我在 "checkbox" in checkBox.setChecked(getSharedPreferences("MyAPP", Context.MODE_PRIVATE).getBoolean("checkBox", true));
中使用的那样
希望你的作品能这样完成.....
我的问题很简单,我想选中复选框以确保即使应用程序已关闭并重新启动。这个过程应该继续,直到用户自己取消选中它。如果用户自己取消选中它,那么应该取消选中直到用户在 android 中再次选中它。
请指导我该怎么做。
为此,您必须全局使用 SharedPreferance
来存储复选框的默认值并在首选项中更改值 onCheckChange
并且在查看加载时根据首选项中的标志设置复选框的状态
在 sharedPreferences 或 localDB 中为用户操作保留一个布尔标志。并且默认情况下将此标志的值保持为 true。当用户单击复选框时,也会更新此标志的值。因此,无论何时启动应用程序,检查此标志的值,如:-
if(checkBoxEnabled) {
checkBox.setEnabled(true);
} else {
checkBox.setEnabled(false);
}
在 xml 布局中添加复选框的地方,添加 android:checked="true"
进行初始检查。
当您监听值的变化时,将状态添加到 SharedPreferences
。例如onCheckedChanged()
SharedPreferences sp = getSharedPreferences(getPackageName(), MODE_PRIVATE);
sp.edit.putBoolean("check_status", checkBox.isChecked()).apply();
使用这一简单的代码......
使用SharedPreferences
保持复选框的状态。
正在初始化....
checkBox.setChecked(getSharedPreferences("MyAPP", Context.MODE_PRIVATE).getBoolean("checkBox", true));
OnCheckedChangeListener
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
getSharedPreferences("MyAPP", Context.MODE_PRIVATE).edit().putBoolean("checkBox", isChecked).commit();
}
});
第一次所有的复选框都被选中,它会像你想要的那样工作....
以上代码只针对一个复选框。对其他复选框尝试相同的方法。只需更改所有复选框的唯一键,就像我在 "checkbox" in checkBox.setChecked(getSharedPreferences("MyAPP", Context.MODE_PRIVATE).getBoolean("checkBox", true));
希望你的作品能这样完成.....