Получить значение из общих настроек в первый раз не работает - PullRequest
0 голосов
/ 19 октября 2018

Я сохраняю токен устройства в общих настройках и получаю его только при втором запуске.Это код:

class PreferencesHelper(context: Context) {

companion object {
    private val usernameKey = "username_key"
    private val passKey = "pass_key"
    private val tokenKey = "token_key"
}

private val preferences = PreferenceManager.getDefaultSharedPreferences(context)

var username = preferences.getString(usernameKey, "")
    set(value) = preferences.edit().putString(usernameKey, value).apply()

var password = preferences.getString(passKey, "")
    set(value) = preferences.edit().putString(passKey, value).apply()

var token = preferences.getString(tokenKey, "")
    set(value) = preferences.edit().putString(tokenKey, value).apply()

Я получаю к нему доступ во фрагменте и сохраняю токен в службе Firebase или в приложении init

  prefs = PreferencesHelper(context!!)
  preds.token... //returns empty string.

.после первого запуска?

1 Ответ

0 голосов
/ 19 октября 2018

Вы неправильно делаете добытчики.На самом деле вы их вообще не делаете.

Использование = для переменной, даже в Kotlin, назначает ее при инициализации и никогда больше.

Изменение:

var username = preferences.getString(usernameKey, "")
    set(value) = preferences.edit().putString(usernameKey, value).apply()

var password = preferences.getString(passKey, "")
    set(value) = preferences.edit().putString(passKey, value).apply()

var token = preferences.getString(tokenKey, "")
    set(value) = preferences.edit().putString(tokenKey, value).apply()

Кому:

var username: String
    get() = preferences.getString(usernameKey, "")
    set(value) = preferences.edit().putString(usernameKey, value).apply()

var password: String
    get() = preferences.getString(passKey, "")
    set(value) = preferences.edit().putString(passKey, value).apply()

var token: String
    get() = preferences.getString(tokenKey, "")
    set(value) = preferences.edit().putString(tokenKey, value).apply()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...