如何返回sharedpreferences的值?

时间:2018-09-06 01:06:56

标签: android kotlin sharedpreferences

我正在使用sharedpreferences存储用户的省。它已经保存在xml文件中,但始终返回默认值

如何返回SharedPreferences的值?

enter image description here enter image description here

  

科特琳

governorate_main.setOnClickListener {
      val view = layoutInflater.inflate(R.layout.add_photo, null)
      val alertBuilder = AlertDialog.Builder(this)
      alertBuilder.setView(view)
      val alertDialog = alertBuilder.create()
      alertDialog.show()
      view.save_governorate.setOnClickListener {
            mShared = getSharedPreferences("mShared", 0)
            val radioId = view.radioGroup.checkedRadioButtonId
            radioButton = view?.findViewById(radioId)
            radioSelected = radioButton?.text.toString()
            val editor:SharedPreferences.Editor = mShared!!.edit()
            editor.putString("governorate", radioSelected).toString()
            editor.apply()
            alertDialog.dismiss()
       }
       val databack: SharedPreferences = getSharedPreferences("mShared", 0)
       governorate.text = databack.getString("governorte", "Please choose your country")
 }

2 个答案:

答案 0 :(得分:1)

根本原因::您正在使用2个差异键来存储和检索SharedPreferences中的值,governorategovernorte不同。

解决方案::您应该将键定义为static constant,然后在存储和检索值时使用它。

companion object {
    val PREF_GOVERNORATE: String = "governorate"
}

商店:

editor.putString(PREF_GOVERNORATE, radioSelected).toString()

检索:

databack.getString(PREF_GOVERNORATE, "Please choose your country")

答案 1 :(得分:0)

您犯了一个拼写错误,您正在另存为governorate,但尝试获取governorte

另外,嵌套点击侦听器也不是一个好主意