据我所知,使用 sharedpreferences 方法保存 int 值的基础是使用这个
SharedPreferences pref = getSharedPreferences("SavedGame", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putInt("savedscore", Score);
editor.commit();
然后我们可以使用它在另一个 Activity 中获取 int 值
SharedPreferences pref = getSharedPreferences("SavedGame", MODE_PRIVATE);
Score = pref.getInt("savedscore", 0);
Scoretext = (TextView)findViewById(R.id.textscore);
Scoretext.setText(String.valueOf(score));
我的问题是如何将我们在另一项 Activity 中获得的所有分数相加?
例子;
当我第一次玩的时候我得到了 4000 的分数,所以当然当我们使用这个方法时 editor.putInt("savedscore", Score);
它会保存分数值然后我们通过使用此 Score = pref.getInt("savedscore", 0);
获得了另一个 Activity 中的得分值,它将使 int 得分值变为 4000
然后我又玩了一次,然后我得到了 2000 分,所以当然 sharedpreferences Score = pref.getInt("savedscore", 0);
int Score 值将更改为 2000 而不是总计
所以我的问题是如何汇总分数?
最佳答案
只需创建另一个首选项条目“totalScore”并相应地增加它(每次保存新分数时):
//...
SharedPreferences pref = getSharedPreferences("SavedGame", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putInt("savedscore", Score);
editor.commit();
updateTotalScore(Score)
//..
private void updateTotalScore(int newScore){
SharedPreferences pref = getSharedPreferences("totalScore", MODE_PRIVATE);
int current = pref.getInt("totalScore", 0);
SharedPreferences.Editor editor = pref.edit();
editor.putInt("totalScore", current+newScore);
editor.commit();
}
private int getTotalScore(){
SharedPreferences pref = getSharedPreferences("totalScore", MODE_PRIVATE);
return pref.getInt("totalScore", 0);
}
关于java - 如何使用 Sharedpreferences 汇总所有分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33302873/