嘿伙计们我有一个问题! 你能告诉我是否以及如何在同一个按钮上设置一个android:onClick方法和一个OnTouchListener?我真的需要这个用于我的应用程序。
我知道它们之间的区别并且仅使用android:onClick或OnTouchListener确实有效。一旦我尝试两者,只需OnTouchListener工作。
我需要这个用于不同布局的不同功能..
感谢您的帮助
只是为了更好地理解。使用android:onClick我的意思是你将此按钮分配给xml文件中的 的方法,如android:onClick =" InitMethod"
答案 0 :(得分:9)
是的,你可以在同一个按钮上同时使用onClick和onTouch,但OnTouch回调你将得到像ACTION_MOVE,ACTION_UP,ACTION_DOWN等的motionEvent,不要忘记在onTouch回调中返回false(Details)。请参考以下代码
Button button = (Button) findViewById(R.id.button);
button.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Log.d("test", "ontouch");
return false;
}
});
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.d("test", "onclick");
}
});
分别在回调onTouch和onClick中执行您想要执行的操作。 请点击是当用户按下按钮并释放时执行的操作,但是当用户按下时将触摸。
因此,只需单击一下,日志就会如下所示。 1.ACTION_DOWN,2.ACTION_UP 3. onClick
03-22 16:19:39.735: D/test(682): ontouch
03-22 16:19:39.735: D/test(682): ontouch
03-22 16:19:39.735: D/test(682): onclick