我在网上搜索,人们正在这样做:
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
int oldScore = prefs.getInt("key", 0);
if(newScore > oldScore ){
Editor edit = prefs.edit();
edit.putInt("key", newScore);
edit.commit();
}
但我想在除了扩展Acitivity的类之外的类中使用第一行(似乎this.getSharedPreferences
方法不会起作用)。我怎么能这样做?
答案 0 :(得分:1)
您必须将Context传递给您要使用的方法或类getSharedPreferences()
,如下所示:
public void updateHighScore(Context context, int newScore) {
SharedPreferences prefs = context.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
int oldScore = prefs.getInt("key", 0);
if(newScore > oldScore) {
Editor edit = prefs.edit();
edit.putInt("key", newScore);
edit.commit();
}
}
如果您确实需要,可以使用getApplicationContext()
在应用程序的任何位置提供可访问的上下文。
有关更多信息,请查看此问题'What is context in Android?'。