У меня есть список предпочтений, который я просматриваю, чтобы создать экран настроек, и я хочу сохранить состояние для каждого из этих элементов, но состояние не сохраняется при перезапуске приложения
Код для каждого переключателя функций:
@Composable
private fun FunctionToggle(name: String, desc: String, id: String) {
val context = LocalContext.current
val scope = rememberCoroutineScope()
val ds = DataStoreKeys(context)
val currentState = ds.getDataStoreValue(id).collectAsState(initial = false).value
var checked by rememberSaveable { mutableStateOf(currentState) }
ListItem(
modifier = Modifier.padding(vertical = 4.dp),
headlineContent = {
Text(
text = name,
style = MaterialTheme.typography.titleLarge,
)
},
supportingContent = {
Text(
text = desc,
style = MaterialTheme.typography.bodyMedium,
)
},
trailingContent = {
Switch(
checked = checked == true,
onCheckedChange = {
checked = it
scope.launch {
ds.saveToDataStore(key = id, value = it)
}
},
)
},
)
class DataStoreKeys(private val context: Context) {
companion object {
private val Context.dataStore: DataStore by preferencesDataStore("userSettings")
}
fun getDataStoreValue(key: String): Flow {
return context.dataStore.data.map { preferences ->
preferences[booleanPreferencesKey(key)] ?: false
}
}
suspend fun saveToDataStore(key: String, value: Boolean) {
context.dataStore.edit { preferences ->
preferences[booleanPreferencesKey(key)] = value
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... -datastore
Как я могу сохранить настройки в Jetpack Compose, используя хранилище данных настроек? ⇐ Android
Форум для тех, кто программирует под Android
1715206452
Anonymous
У меня есть список предпочтений, который я просматриваю, чтобы создать экран настроек, и я хочу сохранить состояние для каждого из этих элементов, но состояние не сохраняется при перезапуске приложения
Код для каждого переключателя функций:
@Composable
private fun FunctionToggle(name: String, desc: String, id: String) {
val context = LocalContext.current
val scope = rememberCoroutineScope()
val ds = DataStoreKeys(context)
val currentState = ds.getDataStoreValue(id).collectAsState(initial = false).value
var checked by rememberSaveable { mutableStateOf(currentState) }
ListItem(
modifier = Modifier.padding(vertical = 4.dp),
headlineContent = {
Text(
text = name,
style = MaterialTheme.typography.titleLarge,
)
},
supportingContent = {
Text(
text = desc,
style = MaterialTheme.typography.bodyMedium,
)
},
trailingContent = {
Switch(
checked = checked == true,
onCheckedChange = {
checked = it
scope.launch {
ds.saveToDataStore(key = id, value = it)
}
},
)
},
)
class DataStoreKeys(private val context: Context) {
companion object {
private val Context.dataStore: DataStore by preferencesDataStore("userSettings")
}
fun getDataStoreValue(key: String): Flow {
return context.dataStore.data.map { preferences ->
preferences[booleanPreferencesKey(key)] ?: false
}
}
suspend fun saveToDataStore(key: String, value: Boolean) {
context.dataStore.edit { preferences ->
preferences[booleanPreferencesKey(key)] = value
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78451374/how-can-i-save-the-preferences-in-jetpack-compose-using-preferences-datastore[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия