Изменяемое состояние работы с общими предпочтениями

#android #kotlin #sharedpreferences #android-jetpack-compose

#Android #kotlin #общие предпочтения #android-реактивный ранец-создать

Вопрос:

Я хочу установить для значения SharedPreferences значение MutableStateOf, но оно сообщает

Тип ‘Изменяемое состояние<переменная типа (T)>’ не имеет метода ‘GetValue(MainViewModel, KProperty<*>)’ и, следовательно, он не может служить делегатом

похоже, что изменяемый режим не может работать с 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, "")!!
    }
  

Ответ №1:

Подсказка Android Studio, которую я могу импортировать ниже двух пакетов, чтобы удалить эту ошибку.

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