android - 如何获取Android Preferences DataStore的所有键

标签 android android-preferences android-jetpack-datastore

如标题所述,有没有办法获取Android Jetpack中存储的所有 key Preferences DataStore ,例如,dataStore

val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")

最佳答案

获取所有 key

suspend fun Context.readAllKeys(): Set<Preferences.Key<*>>? {
    val keys = dataStore.data
        .map {
           it.asMap().keys
        }
    return keys.firstOrNull()
}

通过其关键来获取值(value)

suspend fun Context.getValueByKey(key: Preferences.Key<*>): Any? {
    val value = dataStore.data
        .map {
            it[key]
        }
    return value.firstOrNull()
}

关于android - 如何获取Android Preferences DataStore的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72097644/

相关文章:

java - PreferenceActivity 中的 ActionBar

android - Jetpack 原型(prototype)数据存储 - 使用 Kotlin dsl 进行 gradle 配置

android - 上传前缩小图像大小限制

android - 相对布局 : why do not my buttons show below the line?

android - 我们可以将什么作为音频文件的 okhttp3 MediaType.parse 方法的参数?

Androidx 首选项库与数据存储首选项

android - 如何在特定条件下清除喷气背包数据存储数据

android - Crashlytics 自定义键未出现在崩溃中

android - PreferenceScreen 中的 TimePicker

Android:如何从 PreferenceActivity/PreferenceFragment 外部打开 ListPreference 对话框?