我想使用 getSharedPreferences()外部方法初始化SharedPreferences代码,但是失败(内部方法成功),下面是错误信息。怎么解决?
"引起:java.lang.NullPointerException:尝试调用虚拟 方法' android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String,int)' 在null对象引用"
我标记了#34;没有工作"在下面的代码中:
public class temp extends FragmentActivity {
//below not work
SharedPreferences CODE = getSharedPreferences("CODE", MODE_PRIVATE);
//below also not work
SharedPreferences CODE;
{
CODE= getSharedPreferences("CODE", MODE_PRIVATE);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//work
SharedPreferences CODE = getSharedPreferences("CODE", MODE_PRIVATE);
// also work
CODE = getSharedPreferences("CODE", MODE_PRIVATE); // defined CODE as class member
}
}
答案 0 :(得分:0)
制作另一个类,仅用于获取和设置共享首选项,但您可能需要根据需要更改代码(例如在构造函数中传递上下文)
public class SharedPreference extends Activity{
public SharedPreferences preference = getSharedPreferences("TEST", Context.MODE_PRIVATE);
public SharedPreferences.Editor editor = preference.edit();
public SharedPreferences getPreference() {
return preference;
}
public SharedPreferences.Editor getEditor() {
return editor;
}
}
你可以在任何地方访问它,比如
SharedPreference pref = new SharedPreference();
SharedPreferences preference = pref.getPreference();