【发布时间】:2016-10-14 06:00:07
【问题描述】:
我目前将用户名和密码保存在不同的共享首选项文件中。我想加载保存在 XML 文件中的每个值,而不仅仅是第一个。这要怎么写?
【问题讨论】:
-
SharedPreferences.getAll()是吗?
标签: android android-sharedpreferences
我目前将用户名和密码保存在不同的共享首选项文件中。我想加载保存在 XML 文件中的每个值,而不仅仅是第一个。这要怎么写?
【问题讨论】:
SharedPreferences.getAll() 是吗?
标签: android android-sharedpreferences
您可以这样做的一种方法是:
//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");
【讨论】: