每次点击按钮时,我都会尝试将分数变量加一。问题是我必须在onClick之外声明得分变量,否则它将始终设置为0.此外,我无法声明变量final,因为我正在修改变量。这是代码。
int score = 0;
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
score++;
scoreLabel.setText(String.valueOf(score));
答案 0 :(得分:2)
理想的解决方案是创建变量static
并使其成为外部类的成员。使它static
意味着,类的所有对象将共享变量的单个副本,并且值在任何地方都将保持相同。
在外部类中声明static int score;
。
答案 1 :(得分:1)
如果您不想使用静态变量,可以在外部类(private int score;)中声明分数,然后在构造函数中初始化它。这将为其提供正确的访问范围!
答案 2 :(得分:0)
问题在于var得分是在方法范围内,移动它并将得分声明为类变量。
答案 3 :(得分:0)
您可以使用MutableInt,其名称表示是一个可变整数。这个类在apache commons中提供。 这样您就可以保持变量local和final。
希望这有帮助