我想我現在有一個功能齊全的瑣事遊戲。在結果頁面的遊戲結束時,它顯示一個分數(長)和百分比(int)。我想實現一個離線的SharePreferences高分,現在輸入3個變量 - rank(int),score(long)和percentage(int)。我試圖首先實現一個變量的高分,然後再添加其他兩個變量,但我似乎失敗了。你可以在我的下面的活動中看到很多註釋掉的代碼,我正在嘗試的東西以及許多其他嘗試已經被刪除。與SharedPreferences離線高分 - Android(java)
這是我第一次嘗試使用SharedPreferences,所以我還沒有很好的把握。
Results.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
}
是什麼問題?你究竟在哪裏遇到問題? – thedan
我有一個工作完美的程序,給了我兩個值 - 分數和百分比。我的問題是如何實現SharedPreference高分表到以前的工作程序。你可以在上面的代碼中看到我的SP代碼,但它並不是在接近編譯的地方。我正在尋找關於如何完成高分的實現的指導。 – Matt
當在StackOverflow上提出問題時,你會得到很少答案,這個問題的意思是「這是一些代碼,告訴我如何解決它。」如果編輯問題以包含你想要做的事情,那麼你的代碼會做什麼,而不是像「爲什麼返回null?」這樣的*特定*問題。而不是「爲什麼這不起作用?」,以及一些有意義的錯誤輸出(如果適用)(來自logcat或編譯器輸出的堆棧跟蹤),您將獲得更多答案,因爲其他人會知道要找什麼試圖找出你首先需要幫助的東西。請編輯問題並修復:) –