我是安卓工作室的新手,只是不知道如何使用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()
}
}
}
要将值保存到共享首选项,需要执行以下操作:
- 获取对共享首选项对象的引用
- 创建SharedPreferences.Editor实例
- 选择要保存在共享首选项中的类型
- 使用提交或应用保存更改
您可以在此处阅读更多信息。
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而不是SharedPreferences
。DataStore
使用Kotlin协程和Flow来存储数据,这是保存键值对的推荐方法。