как вернуть значение sharedpreferences? - PullRequest
0 голосов
/ 06 сентября 2018

Я использую общие предпочтения для хранения губернаторства пользователя. Он уже сохранен в файле XML, но всегда возвращает значение по умолчанию

Как я могу вернуть значение SharedPreferences?

введите описание изображения здесь введите описание изображения здесь

Котлин

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 голосов
/ 06 сентября 2018

Основная причина: Вы используете 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")
0 голосов
/ 06 сентября 2018

Вы допустили орфографическую ошибку, вы сохраняете как governorate, но пытаетесь получить governorte

Также, вероятно, не очень хорошая идея вкладывать слушателей кликов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...