java - 如何使用 Sharedpreferences 汇总所有分数?

标签 java android sharedpreferences

据我所知,使用 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/

相关文章:

java - 如何优雅地退出java应用程序?

android - meteor raix :push notification channelId for android 8. 0.0

android - 我在数据库插入期间遇到错误

android - 如何打印 JSON 对象的字符串

java - 另一个 Activity 中的单选按钮仍然为空?

java - PageFactory初始化问题

java - 获取在线 Web 服务应用程序的应用程序模块的最佳实践

java - 当代码具有注释和泛型时,maven 3 + pmd 失败

java - 尝试实现 SharedPreferences 时遇到困难

java - SharedPreferences 问题 - 丢失上次保存的值