如何在android studio中保存复选框状态



我是安卓工作室的新手,只是不知道如何使用sharedpreference保存复选框状态。如果有人能帮助我,我将非常感谢你的帮助。

class SelectAlertSettings : AppCompatActivity() {
private lateinit var mp : MediaPlayer
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.select_alert_config)

}
fun onCheckboxClicked(view: View) {
if (view is CheckBox) {
val checked: Boolean = view.isChecked
when (view.id) {
R.id.checkbox_proximity_alert -> {
if (checked) {
val proximityAlert = R.raw.proximity_alert
mp = MediaPlayer.create(this, proximityAlert)
mp.start()
} else {
mp.stop()
}
}
}
}
val btnCancel : Button = findViewById(R.id.btnDone)
btnCancel.setOnClickListener{
finish()
}
}
}

要将值保存到共享首选项,需要执行以下操作:

  1. 获取对共享首选项对象的引用
  2. 创建SharedPreferences.Editor实例
  3. 选择要保存在共享首选项中的类型
  4. 使用提交或应用保存更改

您可以在此处阅读更多信息。

val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
with (sharedPref.edit()) {
putBoolean("YOUR_CHECKBOX_KEY", checkboxState)
apply()
}

要将复选框状态保存为共享首选项中的boolean,请执行以下操作:

1-获取共享偏好的句柄:

val sharedPref = activity?.getSharedPreferences("preferences file key",Context.MODE_PRIVATE)

2-写入共享偏好:

sharedPref.edit().putBoolean("key", value).apply()

3-从共享偏好读取:

val value = sharedPref.getBoolean("key", defaultValue)

阅读文档以了解更多信息。

我还建议使用DataStore而不是SharedPreferencesDataStore使用Kotlin协程和Flow来存储数据,这是保存键值对的推荐方法。

最新更新