2011-09-19 152 views
0

我在我的应用程序中使用SharedPreferences来存储登录到我的应用程序中的最后一个用户标识,并且我正在尝试从非活动类中执行此操作,这会导致我在NullPointerException代码的第二行:Android获得共享首选项问题

Context mContext; 
SharedPreferences lastUser = PreferenceManager.getDefaultSharedPreferences(mContext); 
SharedPreferences.Editor editor = lastUser.edit(); 

我试着mContext的每一个可能的变化:

  • Acticity.this.mContext;
  • this.mContext.getApplicationContext();
  • this.mContext;

但他们并没有解决我的问题。 任何人都可以给我一些解决方案如何摆脱这个问题,以及如何使用静态方式的上下文,没有得到NullPointerException

回答

2

您应该使用它调用该方法的活动范围。

2

您可以尝试通过非活动类的构造函数传递活动上下文,并使用此上下文创建SharedPreferences对象。

2

试试这个

SharedPreferences lastUser = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
    SharedPreferences.Editor editor = lastUser.edit();