gpt4 book ai didi

java - 使用 SharedPreferences 获得离线高分 - Android (java)

转载 作者:行者123 更新时间:2023-12-02 00:05:46 25 4
gpt4 key购买 nike

我想我现在有一个功能齐全的问答游戏。游戏结束时,结果页面上会显示分数(长)和百分比(整数)。我现在想实现一个离线 SharePreferences 高分,其中输入 3 个变量——排名(int)、分数(long)和百分比(int)。我试图首先用其中一个变量实现高分,然后再添加另外两个变量,但我似乎失败得很厉害。您可以在我的 Activity 下面看到很多注释掉的代码,我在其中尝试了一些东西,并且许多其他尝试已被删除。

这是我第一次尝试使用 SharedPreferences,所以我还没有掌握它。

结果.java

public class Results extends Activity {

public static final String SP_NAME = "TEST";
public static final String INT_PERCENTAGE = "SP_percentage";
public static final String INT_RANK = "SP_rank";
public static final String LONG_SCORE = "SP_score";
private SharedPreferences mPrefs;

QuestionView qv = new QuestionView();
ArrayList<Question> queryList = qv.getQueries();

int cAnswers, wAnswers, percentage, rank;

long score;

ArrayList<Question> qs;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.resultsmain);

mPrefs = getSharedPreferences(SP_NAME, 0);

cAnswers = getIntent().getIntExtra("correctAnswers", -1);
wAnswers = getIntent().getIntExtra("wrongAnswers", -1);
score = getIntent().getLongExtra("score", -1);

qs = getIntent().getParcelableArrayListExtra("queries");

Button mainmenuBtn = (Button)findViewById(R.id.mainmenuBtn);
mainmenuBtn.setText("Main Menu");

mainmenuBtn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
restart();
}
});

//Retrieving high score
SharedPreferences mPrefs = getSharedPreferences(LONG_SCORE, 0);
SharePreferences.Editor editor = prefs.edit();
long highscore = mPrefs.getLong(LONG_SCORE, 0);

//Saving current score as high score
/* SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInteger(HIGH_SCORE, currentScore);*/
// Commit the edits!
editor.commit();

SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);
/* SharedPreferences.Editor editor = prefs.edit();
return editor.commit();*/

showResults();
}

//...other code
}

最佳答案

问题是,您不了解 SharedPreference 的用法。对于这个高分的东西,您应该使用 SQLite 数据库或文本文件。

请阅读指南 http://developer.android.com/guide/topics/data/data-storage.html以便更好地理解 Android 中不同类型的持久化方法。

顺便说一句,您应该创建一个包含您所说的三列(排名(int)、分数(long)和百分比(int))的表格,并执行一些 CRUD 以使您的高分正常工作。您必须了解如何使用 SQLiteOpenHelper 并创建自己的 SQLiteOpenHelper 来执行表创建过程。然后,创建模型类来管理数据。

因此,如果您在阅读developer.android.com 指南后仍有疑问,请在Google 中搜索SQLite 教程。

关于java - 使用 SharedPreferences 获得离线高分 - Android (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13920563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com