为什么我不能将分数增加 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;
}
}
}
希望这个回答你的问题/或者会给你一些想法...
我不知道你怎么能不明白这么简单的事情,而是要总结一切:
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++
也许会改成
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;
}
}
}
希望这个回答你的问题/或者会给你一些想法...