无法在Android应用中保存高分

时间:2015-05-31 04:06:26

标签: android

我在网上搜索,人们正在这样做:

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方法不会起作用)。我怎么能这样做?

1 个答案:

答案 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?'