【问题标题】:Shared Preferences loading multiple values加载多个值的共享首选项
【发布时间】:2016-10-14 06:00:07
【问题描述】:

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

【问题讨论】:

标签: android android-sharedpreferences


【解决方案1】:

您可以这样做的一种方法是:

//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");

【讨论】:

  • @Ferr0283 你能解决你的问题吗?我相信这个答案应该被标记为正确,如果这有帮助,请告诉我=)
猜你喜欢
  • 2021-10-13
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多