gpt4 book ai didi

java - 有没有办法通过引用将成员函数传递到方法中? [JAVA]

转载 作者:行者123 更新时间:2023-12-01 09:35:31 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中实现一个计数器,每次单击按钮时该计数器都会增加。然后我想获取计数器的最终值并将其显示在对话框中。

问题是,当我调用该变量时,它返回它最初具有的值,而不是由 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.

最佳答案

代码逐行同步执行:

      // define and instantiate button listener 
1) final ButtonClick buttonClicked = new ButtonClick();
// attach listener to button
2) theButton.setOnClickListener(buttonClicked);

<------ here you still didn't executed onClick :)

// trying get value
3) final int finalValue = buttonClicked.getValue(); // This still equals zero.

当您到达第 3 行时,您将获得值 0,因为值为零。

尝试点击(执行点击 -> 执行事件或任何其他操作)然后获取值。

要查看它是否有效,您需要第二个异步方法示例:

new Thread(new Runnable() {

@Override
public void run() {

while(buttonClicked.getValue() ==0) {
// you didn't click

Thread.sleep(10000);
}
};
}).start();

关于java - 有没有办法通过引用将成员函数传递到方法中? [JAVA],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38982022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com