0

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

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

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

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

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

4

1 回答 1

4

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

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

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

于 2011-01-06T20:57:13.147 回答