每次Toast显示内容时递增一个int



我想当吐司显示消息"正确!", TextView显示分数值对自己,并为下一次分数增加1。它第一次工作,吐司显示消息(TextView将显示1),但第二次及以后不工作。这可能吗?

int messageAnswer;
int score = 0;
if (condition is true) {
messageAnswer = R.string.correct_toast;
score++;
scoreText.setText(String.valueOf(score));
} else {
messageAnswer = R.string.incorrect_toast;
}
Toast.makeText(getApplicationContext(), messageAnswer, Toast.LENGTH_SHORT).show();

每次输入此代码块时,score都是新创建的,并初始化为0。您需要在此块之外定义它,例如作为实例变量private int score = 0;

看起来你的问题是score是一个局部变量。

每次调用检查应答和显示Toast功能,复位为0。

你需要使它成为一个实例变量,一个字段在任何类的代码,使它保持其值之间的函数调用。

在每次调用toast之前设置score = 0。它应该只初始化一次。你应该把它移到程序的上方,移到循环之外,或者无论你回到这里。

最新更新