2014-09-27 47 views
1

我正在使用android-annotations作为示例项目并试图学习它,但我想出了一件奇怪的事情。对同一个按钮使用触摸和单击注释

假设我们有一个名为“@ + ID /按钮”

现在我想写触摸两个不同的方法,然后单击事件一个简单的按钮。

@Touch 
public void button(View v, MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     v.setAlpha(0.5f); 
    } else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) { 
     v.setAlpha(1f); 
    } 
} 

@Click 
public void button() { 
    startActivity(new Intent(this, ExampleActivity.class)); 
    finish(); 
} 

当我运行该项目,我看到触摸事件,但单击事件将永远不会被捕获。我错过了什么,可能是概念?

回答

6

由@Touch注解的方法可以返回一个布尔值,指示事件是否被消耗。所以,你可以通过

@Touch 
public boolean button(View v, MotionEvent event) { 
    ... 
    return false; 
} 
+0

这是如此简单替代方法

@Touch public void button(View v, MotionEvent event) { ... } 

,谢谢。 – oko 2014-09-27 13:18:35

相关问题