【问题标题】:How to save a Checkbox state in android studio?如何在android studio中保存复选框状态?
【发布时间】:2021-07-18 01:46:42
【问题描述】:

我是 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()
        }
    }
}

【问题讨论】:

  • 那个代码没有调用onCheckboxClicked函数
  • 这能回答你的问题吗? Android: checkbox listener
  • @pi_hobbyist - 我的回答有帮助吗?

标签: android kotlin checkbox sharedpreferences


【解决方案1】:

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

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

您可以阅读更多关于它的信息here

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

【讨论】:

    【解决方案2】:

    要将复选框状态保存为共享首选项中的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)
    

    阅读documentation 了解更多信息。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      相关资源
      最近更新 更多