我试图在我的应用程序中实现一个计数器,每次点击该按钮时都会增加。然后,我想要采取计数器的最终值,并将其显示在对话框中。有没有办法通过引用将成员函数传递给方法? [JAVA]
问题是,当我调用变量时,它返回最初有的值,而不是通过onClick方法修改的值(这很奇怪,但我在我的代码中评论了我的意思)。
final TextView points = (TextView) findViewById(R.id.points);
points.setText("Points = 0");
class ButtonClick implements View.OnClickListener {
int value = 0;
public void onClick(View v) {
value++;
changeLocation(theButton);
points.setText("Points = " + value); // This value increases
}
public int getValue() {
return value;
} // This returns 0.
}
final ButtonClick buttonClicked = new ButtonClick();
theButton.setOnClickListener(buttonClicked);
final int finalValue = buttonClicked.getValue(); // This still equals zero.
Java没有指针。 – shmosel
Re,“//这仍然等于零。” _什么时候它仍然等于零?你的程序是否在某些方法中直接执行最后三行?也就是说,它是否创建了新的ButtonClick对象,进行注册,然后立即获得它的值?在这种情况下,它的价值当然是零!你还没有给用户任何时间点击按钮。 –
@jameslarge我很傻,您的评论是让我得到正确答案的!我太早调用了getValue函数。 (对Java /第一个应用程序而言仍然是新的)。 –