0
我目前正在將用戶名和密碼保存在不同的共享首選項文件中。我想加載保存在XML文件中的每個值,而不僅僅是第一個。這將如何寫入?你可以做到這一點共享首選項加載多個值
我目前正在將用戶名和密碼保存在不同的共享首選項文件中。我想加載保存在XML文件中的每個值,而不僅僅是第一個。這將如何寫入?你可以做到這一點共享首選項加載多個值
的一種方法如下:
//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");
@ Ferr0283你能解決你的問題嗎?我相信這個答案應該被標記爲正確,讓我知道這是否有助於=) – HenriqueMS
'SharedPreferences.getAll()'是它嗎? – nandsito
要複製該文件,請參閱:http://stackoverflow.com/a/25585711/1815624 – CrandellWS