我正在构建一个包含SharedPreferences
的Android项目。
我的SharedPreferences
工作正常,我在多项活动中进行了测试。但是在我为全局变量定义的类中,定义SharedPreferences
会导致强制关闭(eclipse没有在代码中显示任何错误)。
public class Globals extends Application {
final SharedPreferences s = getSharedPreferences("Prefs", MODE_PRIVATE);
}
有什么问题?
答案 0 :(得分:1)
您应该传递Context
并使用
SharedPreferences prefs = Context.getSharedPreferences(
"Prefs", Context.MODE_PRIVATE);
答案 1 :(得分:0)
创建构造函数并将Context变量作为参数传递。任何想要使用此首选项的活动都必须传递活动。这是下面给出的代码:
public class Globals extends Application {
private Context context;
public Globals (Context context) {
this.context = context;
}
SharedPreferences myPref = context.getSharedPreferences("Prefs", Context.MODE_PRIVATE);
}
答案 2 :(得分:0)
您无法在实际课程中运行getSharedPreferences()
。您所做的一切都必须在应用程序的onCreate
方法中。如果您尝试在类中运行它,它将失败,因为它尚未初始化。将其视为一项活动,因为活动和应用程序都有生命周期。
尝试以下方法:
public class Globals extends Application {
@Override
public void onCreate() {
super.onCreate();
final SharedPreferences s = getSharedPreferences("Prefs", MODE_PRIVATE);
}
}