gpt4 book ai didi

android - 按钮上的单击、按下和释放事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:15 27 4
gpt4 key购买 nike

如何检测按钮的点击、按下和释放状态。我想对这些状态执行不同的功能。单击时我想调用函数 1,按下时我想调用函数 2,接收时我想调用函数 3。

我们可以使用 View.OnClickListener 检测点击状态。我们可以使用 View.OnTouchListener 并处理 ACTION_DOWNACTION_UP 来检测 Button 的按下和释放状态。我能够单独检测到这些状态,但是不能一起检测。

下面是 OnCLickListener 的代码。

button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
System.out.println(" clicked ");
}
});

下面是 OnTouchListener 的代码。

button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
System.out.println(" pressed ");
return true;
case MotionEvent.ACTION_UP:
System.out.println(" released ");
return true;
}
return false;
}
});

当我在 Button 上设置点击和触摸监听器时,Click 事件永远不会被调用。相反,我收到按下和释放状态。

如何同时处理这三种状态?

编辑:

我添加了我使用过的 OnClickListener 和 OnTouchListener 代码。

最佳答案

很简单,因为 Button 是一个 View:

    button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// Pressed
} else if (event.getAction() == MotionEvent.ACTION_UP) {
// Released
}
return true;
}
});

关于android - 按钮上的单击、按下和释放事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27520044/

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