为什么我不能将分数增加 2?

Why can't I increment score by 2?

我不知道你怎么能不明白这么简单的事情,而是要总结一切:

My main point is to increment score by 1 everytime button is clicked(Completed). I want to change the incrementation, instead incrementing score by 1, I want to increment score by 2 after upgrade button is clicked.

目标: {MainActivity:你点击一个按钮,分数加1。 UpgradeActivity:你点击一个按钮,增量改变,分数立即增加2。我不能让它增加2,而是增加1。 }

我使用 SharedPreference、MainActivity.java:

保存的应用内得分
public void button(View view) {

    mScore++;

    SharedPreferences myScore = getSharedPreferences("Symbols", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = myScore.edit();
    editor.putInt("mScore", mScore);
    editor.commit();

    score.setText("Symbols: " + mScore);
}

升级活动:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_upgrade);

    score = findViewById(R.id.score);

    SharedPreferences myScore = this.getSharedPreferences("Symbols", Context.MODE_PRIVATE);
    mScore = myScore.getInt("mScore", 0);

    score.setText("Symbols: " + mScore);
}

public void upgrade(View view) {

    if(mScore>=200){

        SharedPreferences myScore = this.getSharedPreferences("Symbols", Context.MODE_PRIVATE);
        mScore = myScore.getInt("mScore", 0);

        mScore += 2;

        score.setText("Symbols: " + mScore);

        onResume();


        Intent intent = new Intent(this, PlayActivity.class);
        startActivity(intent);
    }else{

        Intent intent1 = new Intent(this, MainActivity.class);
        startActivity(intent1);
    }


}

}

我的全部观点都不成立。它仍然添加 +1,所以我的 UpgradeActivity 或升级按钮可能有问题。

有什么建议吗?

正如您从代码中看到的那样,由于 mScore++

,此处的 MainActivity 将始终 +1

也许会改成

int increment = 1;

public void button(View view) {

    mScore = mScore + increment;

    SharedPreferences myScore = getSharedPreferences("Symbols", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = myScore.edit();
    editor.putInt("mScore", mScore);
    editor.commit();

    score.setText("Symbols: " + mScore);
}

然后

startActivityForResult(new Intent(this, UpgradeActivity.class), 1)

在UpgradeActivity.class

public void upgrade(View view) {

    if(mScore>=200){
       setResult(RESULT_OK);
    }

    onBackPressed();
}

然后在 MainActivity.class

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        // Make sure the request was successful
        if (resultCode == RESULT_OK) {
           increment = 2;
        }
    }
}

希望这个回答你的问题/或者会给你一些想法...