android - 设置两者,android :onClick AND OnTouchListener

标签 android button

如何在同一个按钮上设置 android:onClick 方法和 OnTouchListener?我的应用程序真的需要这个。

我知道它们的区别,只使用 android:onClick 或 OnTouchListener 就可以了。一旦我尝试同时执行这两项操作,只有 OnTouchListener 起作用。

我需要它来实现不同布局中的不同功能。

只是为了更好的理解。对于 android:onClick,我的意思是将此按钮分配给在 xml 文件中 的方法,例如 android:onClick="InitMethod"

最佳答案

是的,你可以在同一个按钮上同时使用 onClick 和 onTouch,但是 OnTouch 回调你会得到 motionEvent,比如 ACTION_MOVE、ACTION_UP、ACTION_DOWN 等,不要忘记在 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.点击

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

关于android - 设置两者,android :onClick AND OnTouchListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15568113/

相关文章:

java - 在 Android 中使用 BroadcastReceiver 注册耳机按钮单击

android - 相机在纵向模式下拉伸(stretch)

使用 Robolectric : java. lang.InstantiationException 的 Android 库 JUnit 测试

Android:RecyclerView 滚动问题

jquery - 向 jQuery Accordion 脚本添加关闭按钮

android - 如何让一切眼前一亮?

python - 让 Tkinter 等到按下按钮

java - 将值插入数据库时​​出现问题

java - JButton 上的大图像未显示

android - 单击按钮后如何禁用按钮