变量需要声明为final

Variable needs to be declared final

我试图在每次单击按钮时让分数变量增加一。问题是我必须在 onClick 之外声明 score 变量,否则它将始终设置为 0。另外,我无法声明变量 final,因为我正在修改变量。这是代码。

    int score = 0;

    View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            score++;

            scoreLabel.setText(String.valueOf(score));

问题是 var score 在方法中的作用域,移动它并将 score 声明为 class 变量。

理想的解决方案是使变量 static 成为外部 class 的成员。使其成为 static 意味着 class 的所有对象将共享一个变量副本,并且该值将在任何地方保持不变。

在外部 class 中声明 static int score;

如果不想使用静态变量,可以在外层class声明分数(private int score;),然后在构造函数中初始化。这将为它提供正确的访问范围!

您可以使用 MutableInt,顾名思义,它是一个可变整数。这个 class 在 apache commons 中提供。 这样你就可以保持变量局部和最终。

希望对您有所帮助