私は今、完全に機能する雑学ゲームを持っていると思います。結果ページのゲームの最後に、スコア (long) とパーセンテージ (int) が表示されます。ランク (int)、スコア (ロング)、パーセンテージ (int) の 3 つの変数が入力されるオフラインの SharePreferences ハイスコアを実装したいと考えています。最初に変数の 1 つを使用してハイスコアを実装し、後で他の 2 つを追加しようとしましたが、うまくいかないようです。以下の私のアクティビティで、私が試していた多くのコメントアウトされたコードと、他の多くの試みがすでに削除されていることがわかります。
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
}