如何使 checkbox/slider 持久化?

How to make checkbox/slider persistent?

到目前为止,我创建的应用程序主要将对象 ecc 存储在 SQLite 数据库中。 但是我如何使 checkbox/slider 持久化?

示例: 用户进入设置并检查 "Use Dark mode" 我如何使复选框在关闭应用程序后保持选中状态,这样用户就不必在每次打开我的应用程序时都检查暗模式?共享首选项?

正如@AndyRes 所说,您可以在共享首选项中存储这样的简单数据。这是一个简单的键值存储,即您根据键存储值,并可以通过提供键来获取存储的值。

例如

getSharedPreferences().edit().putBoolean("my_key", checkBox.isChecked()).apply;

将复选框的值存储到键中 "my_key"。你应该把它改成有意义的 你想把它放在一个监听器中,这样每次检查状态改变时你都可以保存它,使用 checkBox.setOnCheckedChangeListener 或 onClick 保存按钮。

当您加载 activity 时,您想要检索状态并更新复选框以匹配 ie

//the second parameter false is the default value to be used if the key doesn't exist in the store
boolean checked = getSharedPreferences().getBoolean("my_key", false);
checkBox.setChecked(checked)

请注意,我正在使用函数 getSharedPreferences(),它是 Context 的一个函数,可以在 activity

中使用