#android #kotlin
Вопрос:
Привет, вместо того, чтобы читать данные по отдельности из хранилища предпочтений, я пытаюсь найти общий метод, который означает передачу данных возврата ключа, связанных с ключом, но он не работает..
suspend fun <T> getData(key: Preferences.Key<T>): Flow<String> {
val value: Flow<String> = context.dataStore.data
.map { preferences ->
preferences[key] ?: ""
}
return value
}
Комментарии:
1. Вы передаете строковый тип в потоке, вместо этого передайте T.
Ответ №1:
Вы можете создать функцию, подобную этой:
private fun <T> getData(key: Preferences.Key<T>) = dataStore.data.map {
it[key]
}
и назовите это так:
val key = stringPreferencesKey("username")
val data = getData(key)
GlobalScope.launch {
data.collect {
Log.d("Data-", it.toString())
}
}
Комментарии:
1. @karteekthati Вы можете отметить ответ как принятый, если он работает для вас.