我目前正在将用户名和密码保存在不同的共享首选项文件中。我想加载保存在XML文件中的每个值,而不仅仅是第一个。怎么写呢?
答案 0 :(得分: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());
想知道用户john是否有密码?
boolean johnHasPasswd = pwdHashMap.containsKey("john");
String johnsPass;
if(johnHasPasswd)
johnsPass = pwdHashMap.get("john");