我正在使用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")
}
答案 0 :(得分:1)
根本原因::您正在使用2个差异键来存储和检索SharedPreferences中的值,governorate
与governorte
不同。
解决方案::您应该将键定义为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
另外,嵌套点击侦听器也不是一个好主意