2016-02-19 64 views
1

我想每次单击一个按钮时都会将得分变量加1。问题是我必须在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

让它类成员变量 – Inducesmile

回答

0

的问题是,在VAR分数是在方法作用域,动议和声明得分为类变量。

+0

将比分变量作为“全局”变量或类变量.... –

+0

是的,我知道,但我不能这样做,除非我等10分钟。 –

+0

我刚更改了分数变量以公开。 –

2

理想的解决方案是制作变量static并使其成为外部类的成员。使其成为static意味着,该类的所有对象将共享该变量的单个副本,并且该值在任何地方都保持相同。在外部类中声明static int score;

1

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

0

您可以使用MutableInt,它的名称表示它是一个可变整数。这个类在apache的commons中提供。 这样你可以保持变量本地和最终。

希望这有助于