我想当吐司显示消息"正确!", 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
。它应该只初始化一次。你应该把它移到程序的上方,移到循环之外,或者无论你回到这里。