共享首选项加载多个值

时间:2016-10-13 18:43:53

标签: android android-sharedpreferences

我目前正在将用户名和密码保存在不同的共享首选项文件中。我想加载保存在XML文件中的每个值,而不仅仅是第一个。怎么写呢?

1 个答案:

答案 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");