2015-10-18 49 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。 –