我无法弄清楚如何创建一个高分函数。我知道我必须有2个值并将它们与if语句进行比较并将它们保存在SharedPreferences中。我理解的共享偏好。我不明白的是如何比较这两个值?
在我的程序中,我有一个名为score的int。每次我正确回答问题时,它会像得分++一样增加,最后会显示已回答的问题编号。让我们说我再玩,现在得到一个更大的数字。如果他们的名字得分相同,如何比较?我是否需要将分数分配给一些新变量?怎么样?我现在感到愚蠢和羞愧..
CODE: 我的分数存储在这里:
public static int scores = 0;
这是我每次都添加+1的方式:
if (type.get(count[0])) {
scores++; // Add +1 to the score; ...
我在这里保存我的分数:
protected void score() {
super.onDestroy();
SharedPreferences prefs = getSharedPreferences("level1", Context.MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = prefs.edit();
if(scores > highscore) {
highscore = scores;
prefsEditor.clear();
prefsEditor.putInt("score", scores);
prefsEditor.commit();
}
并在以下活动中展示:
SharedPreferences prefs = getSharedPreferences("level1", Context.MODE_PRIVATE);
int userScore = prefs.getInt("score", 0);
mResult.setText("" + userScore);
答案 0 :(得分:2)
每次获得高分时,只需将分数保存在SharedPreferences
,然后在启动应用时显示该分数:
// when starting the app
public static int userScore = 0;
SharedPreferences prefs = getSharedPreferences("level1", Context.MODE_PRIVATE);
userScore = prefs.getInt("score", 0);
mResult.setText("" + userScore);
public static int scores = 0;
if (type.get(count[0])) {
scores++;
}
if(scores > userScore)
{
SharedPreferences.Editor prefsEditor = prefs.edit();
prefsEditor.putInt("score", scores);
prefsEditor.commit();
}
答案 1 :(得分:0)
进行简单的检查(如果您只是寻找最高分,而不是其他分数)。做一个IF声明。
我不知道你所谓的高分,但是像:
if (score > highscore){
highscore = score;
}
应该很简单,不是吗?然后将其保存在配置中并每次都弹出...