首页 > 解决方案 > MutableStateOf 与 sharedPreferences 一起使用

问题描述

我想将 sharedPreferences 值设置为 MutableStateOf,但它报告

类型 'MutableState<TypeVariable(T)>' 没有方法 'getValue(MainViewModel, KProperty<*>)' 因此它不能用作委托

似乎 MutableStateOf 不能与 sharedPreferences 一起使用。

// viewModel
// ...
    var item: String by mutableStateOf(appPreferences.getItemName())
        private set
// ...

// sharedPreferences
    private val prefs = PreferenceManager.getDefaultSharedPreferences(context)
    fun getItemName(): String {
        return prefs.getString(PREF_ITEM_NAME, "")!!
    }

标签: androidkotlinsharedpreferencesandroid-jetpack-compose

解决方案


android studio 提示我可以导入以下两个包以消除此错误。

import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue

推荐阅读