我在我的应用程序中使用SharedPreferences
来存储在我的应用程序中登录的最后一个用户ID,我正在尝试从非活动类中执行此操作,这会导致{{1}在第二行代码中:
NullPointerException
我已尝试过mContext的所有可能变体:
Context mContext;
SharedPreferences lastUser = PreferenceManager.getDefaultSharedPreferences(mContext);
SharedPreferences.Editor editor = lastUser.edit();
Acticity.this.mContext;
this.mContext.getApplicationContext();
但他们没有解决我的问题。
任何人都可以给我一些解决方法如何摆脱这个问题以及如何以静态方式使用Context而不获取this.mContext;
?
答案 0 :(得分:2)
您应该使用调用该方法的活动的上下文。
答案 1 :(得分:2)
您可以尝试通过非活动类的构造函数传递活动上下文,并使用此上下文创建SharedPreferences对象。
答案 2 :(得分:2)
试试这个
SharedPreferences lastUser = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = lastUser.edit();
答案 3 :(得分:1)
我认为你没有初始化非Activity类的上下文,为了逃避参考这个Android saving data in Internal Storage NullPointerException