【问题标题】:Accessing another Activity's preferences访问另一个 Activity 的首选项
【发布时间】:2011-01-06 20:51:36
【问题描述】:

我有一个登录活动,它将凭据存储在它自己的 SharedPreferences 中;然后我添加了两个 getter 来读取它们,比如

public String getUsername() {
  return getPreferences(MODE_PRIVATE).getString("#username", null);
}

但是当我这样称呼它时,这会引发 NPE

String mUser = (new Login()).getUsername();

在简单的构造函数调用之后,Activity 似乎无法读取其首选项,就好像它处于某种未完成状态一样。我阅读了很多相关主题,但无法找到解决方案。基本上,我需要在我的应用程序中的活动之间共享这些凭据

【问题讨论】:

    标签: android android-preferences


    【解决方案1】:

    这不是您创建活动的方式。当您只调用new Login() 时,它没有正确的上下文来访问共享首选项。你也不应该在扩展ActivityService 的类上调用new。这不是 android 类的工作方式。

    您需要一种方法来获取对 Activity 的引用。

    但听起来您的设计不正确。您不需要了解其他活动的偏好。如果这样做,只需将其放在 defaultSharedPrefernces 中即可。

    【讨论】:

    • 感谢您的建议,但我什至不知道 defaultSharedPreferences 是什么。您能否编辑您的帖子并更好地解释自己?我是 Android 开发的新手,只知道官方的 tut 状态
    猜你喜欢
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多