Pio*_*paw 64 android android-preferences
如何获取所有密钥SharedPreferences
,而不仅仅是密钥的优先级值?
prefA = getSharedPreferences("MyAttack", MODE_PRIVATE);
prefB= getSharedPreferences("MySkill", MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
Bla*_*elt 168
SharedPreferences
有getAll()
返回 的方法Map<String, ?>
.从Map中,您可以轻松检索键keySet()
和键/值映射entrySet()
:
Map<String, ?> allEntries = prefA.getAll();
for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
Log.d("map values", entry.getKey() + ": " + entry.getValue().toString());
}
Run Code Online (Sandbox Code Playgroud)
Bha*_*rma 15
你可以做的是使用SharedPreferences的getAll()方法并获取Map中的所有值,然后你可以轻松地遍历它们:
Map<String,?> keys = prefs.getAll();
for(Map.Entry<String,?> entry : keys.entrySet()){
Log.d("map values",entry.getKey() + ": " + entry.getValue().toString());
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,您可以使用此链接检查PrefUtil.java的dump()实现.
Mar*_*ema 13
使用getAll()方法android.content.SharedPreferences
.
Map<String, ?> map = sharedPreferences.getAll();
Run Code Online (Sandbox Code Playgroud)
Kotlin 将允许您使用Map仅用一行来获取所有 SharedPreferences 键。
队友的欢呼声
val sharedPreferences = context.getSharedPreferences("SHARED_PREFERENCES", Context.MODE_PRIVATE)
val sharedPreferenceIds = sharedPreferences.all.map { it.key } //returns List<String>
Run Code Online (Sandbox Code Playgroud)
查看下面的getAll()
方法代码
Map<String, ?> prefsMap = prefA.getAll();
for (Map.Entry<String, ?> entry: prefsMap.entrySet()) {
Log.v("SharedPreferences", entry.getKey() + ":" +
entry.getValue().toString());
}
Run Code Online (Sandbox Code Playgroud)
在阅读了 @Delacrix 回复并使用 Kotlin 方式(在 Kotlin 1.3.11 中测试)检索键后,我发现了一个更短的版本来获取键(甚至是值):
val prefsA = context.getSharedPreferences("MyAttack", Context.MODE_PRIVATE)
val prefsAIDs = sharedPreferences.all.keys //returns MutableSet<String>
Run Code Online (Sandbox Code Playgroud)
同样,您只能通过访问值sharedPreferences.all.values
(即使这不是您在问题中询问的内容,可能对其他读者有用)。
归档时间: |
|
查看次数: |
45122 次 |
最近记录: |