gpt4 book ai didi

java - OnTouchListener() 只会在按下并按住按钮时执行一次

转载 作者:行者123 更新时间:2023-11-29 22:16:23 27 4
gpt4 key购买 nike

brown = (Button) findViewById(R.id.brownButton);
brown.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
count++;
Log.d("count", "" + count);
return true;
} else if (event.getAction() == (MotionEvent.ACTION_UP)) {
count--;
Log.d("count", "" + count);
return true;

}
return false;

}
});

当我的手指按住按钮时,我的计数只会增加一次。当我放手时,它会相应地减少。请有人告诉我如何让我的代码在我的手指按住按钮时递增。谢谢。

最佳答案

触摸监听器是这样工作的:

它接收到一个 ACTION_DOWN 事件(用户触摸)

然后它接收所有以下事件(如果返回 true)并将以下所有事件视为 ACTION_MOVE 事件

touch lisetener 持续接收 ACTION_MOVE 事件,直到它接收到 ACTION_UP 或 ACTION_CANCEL 事件。

因此 ACTION_DOWN 仅触发一次,然后是任意数量的 ACTION_MOVE 事件,然后是单个 ACTION_UP 或 ACTION_CANCEL。

如果您希望计数器递增,则需要检查 ACTION_MOVE 事件。

@Override
public boolean onTouch(View v, MotionEvent event) {

switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
//do something on DOWN
break;
case MotionEvent.ACTION_MOVE:
//do something on MOVE
break;
case MotionEvent.ACTION_UP:
//do something on UP
break;
}
return true;
}

关于java - OnTouchListener() 只会在按下并按住按钮时执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348021/

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