Я создаю объект для использования sharedPreference.
private const val PREF_LOGIN_NAME = "loginName"
object LoginPreferences {
fun getStoredName(context: Context): String {
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
return prefs.getString(PREF_LOGIN_NAME, "testExample")!!
}
fun setStoredName(context: Context, query: String) {
PreferenceManager.getDefaultSharedPreferences(context)
.edit()
.putString(PREF_LOGIN_NAME, query)
.apply()
}
}
Затем я использую этот объект с моей ViewModel.
class LoginViewModel(private val app: Application) : AndroidViewModel(app) {
val name: String
get() = LoginPreferences.getStoredName(app)
fun loginSubmit() {
LoginPreferences.setStoredName(app, name)
}
}
LoginViewModel является успешной привязкой в моем LoginFragment.
Но если я хочу сохранить его в sharedPreference, код, который я показываю в LoginViewModel, не работает для меня.