2015-10-18 33 views
0

有人可以告诉我,我该如何从首选项文件中获取所有字符串设置值,我保存在此文件中只需设置列表?Android偏好设置:当密钥未知时获取所有设置值

Set<String> set = new HashSet<String>(); 
set.add("value1"); 
set.add("value2"); 
set.add("value3"); 
editor.putStringSet("key", set); 

问题我不知道哪个键将被选择保存。这是可能读取所有可用的列表而不知道密钥?

+0

我想保存一些项目,例如key = project5,value1 = place,value2 = person等等。所以我不知道用户希望永久保存哪个项目 –

回答

2

你可以使用这样的东西。

Map<String, ?> keys = PreferenceManager.getDefaultSharedPreferences(this).getAll(); 
for (Map.Entry<String, ?> entry : keys.entrySet()) { 
    if (entry.getValue() instanceof Set) { 
     Log.e("Set values", entry.getKey() + ": " + 
       entry.getValue().toString()); 
    } 
} 

虽然我不确定你为什么要那样做?因为您应该使用一些特定的键设置数据,以便以后可以获取相同的数据。你是什​​么意思I don't know which key will be chosen to save

+0

谢谢我会尝试。我的意思是我不知道用户将选择将条目保存在首选项文件中的哪个条目。 –

+0

我试过了,它没有从首选项文件中读取任何东西。 –

+0

它完美的工作,我只是有一个问题,因为我不使用defaultSharedPreferences。 –