如何使复选框/滑块持久化?

时间:2019-06-22 18:01:30

标签: java android android-sqlite persistence

到目前为止,我已经创建了一些应用程序,这些应用程序主要将对象ecc存储在SQLite数据库中。 但是我如何使复选框/滑块持久化?

示例: 用户进入设置并检查“使用深色模式” 在关闭应用程序后,如何使复选框保持选中状态,以便用户每次打开我的应用程序时都不必检查暗模式?共享偏好设置?

1 个答案:

答案 0 :(得分:0)

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

例如

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

将复选框的值存储到键“ my_key”中。您应该将其更改为有意义的内容 您希望将其放置在侦听器中,以便每次检查状态更改时都使用checkBox.setOnCheckedChangeListener或保存按钮的onClick进行保存。

在加载活动时,您要检索状态并更新复选框以匹配,即

//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的函数,可以在活动中使用