【发布时间】:2017-04-18 20:40:49
【问题描述】:
我有一个在主屏幕上显示分数的应用程序,但每次开始新游戏时它都会设置为零。我想要它做的是存储该分数,并且仅在下一个分数更高时才更改,因此它是最高分数。
目前部署了一个 hitCount 方法,finish() 方法利用该方法显示从游戏活动到主要活动的得分。
finish()方法如下:
public void finish(){
Intent returnIntent = new Intent();
returnIntent.putExtra("GAME_SCORE", gameView.getHitCount());
setResult(RESULT_OK, returnIntent);
super.finish();
}
在 MainMenu 类中,下面的 onActivityResult() 方法用于获取在主屏幕上显示的分数:
protected void onActivityResult(int requestCode, int resultCode, Intent retIntent) {
// Check which request we're responding to
if (requestCode == SCORE_REQUEST_CODE) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
if (retIntent.hasExtra("GAME_SCORE")) {
int scoreFromGame = retIntent.getExtras().getInt("GAME_SCORE");
tvScore.setText(Integer.toString(scoreFromGame));
//highScore.setText(Integer.toString(scoreFromGame));
}
}
}
}
现在,我知道我必须使用诸如共享偏好之类的东西来存储分数并在达到时用更高的数字替换它,但我不知道如何以及在哪里。
一如既往,非常感谢任何帮助。
谢谢
【问题讨论】:
-
您可以在任何有 Context(如 Activity)的地方访问 SharedPreferences
标签: java android android-intent sharedpreferences