变量需要声明为final

时间:2016-02-19 17:38:55

标签: java android variables button final

每次点击按钮时,我都会尝试将分数变量加一。问题是我必须在onClick之外声明得分变量,否则它将始终设置为0.此外,我无法声明变量final,因为我正在修改变量。这是代码。

    int score = 0;

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

            score++;

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

4 个答案:

答案 0 :(得分:2)

理想的解决方案是创建变量static并使其成为外部类的成员。使它static意味着,类的所有对象将共享变量的单个副本,并且值在任何地方都将保持相同。

在外部类中声明static int score;

答案 1 :(得分:1)

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

答案 2 :(得分:0)

问题在于var得分是在方法范围内,移动它并将得分声明为类变量。

答案 3 :(得分:0)

您可以使用MutableInt,其名称表示是一个可变整数。这个类在apache commons中提供。 这样您就可以保持变量local和final。

希望这有帮助