如何在应用程序重新启动后始终选中复选框,直到用户在 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));

中使用的那样

希望你的作品能这样完成.....