2016-10-13 183 views
0

我目前正在將用戶名和密碼保存在不同的共享首選項文件中。我想加載保存在XML文件中的每個值,而不僅僅是第一個。這將如何寫入?你可以做到這一點共享首選項加載多個值

+0

'SharedPreferences.getAll()'是它嗎? – nandsito

+0

要複製該文件,請參閱:http://stackoverflow.com/a/25585711/1815624 – CrandellWS

回答

0

的一種方法如下:

//if you are running the code inside from an Activity 
Context context = this; 
SharedPreferences userSharedPrefs = context.getSharedPreferences("USER_NAME_PREFS", MODE_PRIVATE); 
SharedPreferences pwdSharedPrefs = context.getSharedPreferences("PWD_PREFS", MODE_PRIVATE); 

的方法GETALL()將返回名爲HashMap的數據結構就像一本字典:

對於存儲有每個唯一密鑰

旁註:通過讓他們都在,一旦你還挺打破這個數據結構的目的,但讓我們繼續

Map<String, String> userNameHashMap = (Map<String, String>)userSharedPrefs.getAll(); 
    Map<String, String> pwdHashMap = (Map<String, String>)pwdSharedPrefs.getAll(); 

那麼你可以做任何你想要與他們

希望它們在列表中? (我的方式假設你的用戶名都是字符串)

List<String> userNameList = new LinkedList<>(); 
    userNameList.addAll(userNameHashMap.values()); 

想知道是否有用戶約翰密碼?

boolean johnHasPasswd = pwdHashMap.containsKey("john"); 
    String johnsPass; 

    if(johnHasPasswd) 
     johnsPass = pwdHashMap.get("john"); 
+0

@ Ferr0283你能解決你的問題嗎?我相信這個答案應該被標記爲正確,讓我知道這是否有助於=) – HenriqueMS