如何在 OnTouchListener 中一次添加事件 OnclickListenerLinearLayout

这是我的代码,但不起作用

final LinearLayout llTimeTable=(LinearLayout) findViewById(R.id.llSehriIftar);
    llTimeTable.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(MainActivity.this, Ramadandate.class);
            startActivity(intent);

        }
    });
    llTimeTable.setOnTouchListener(new View.OnTouchListener() {

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

            switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:

            llTimeTable.setBackgroundColor(Color.rgb(51, 51, 255));
                break;

            case MotionEvent.ACTION_UP:

                // set color back to default
                llTimeTable.setBackgroundColor(Color.rgb(76, 106, 225));

                break;
            }
            return true;
        }
    });

但是当我只使用 OnclickListener 时它可以工作,当我只使用 onTouch 方法时它可以工作,但同时两者都不起作用。

最佳答案

由于触摸事件更通用,它首先被调用,然后 onClick 被触发,但是,由于您的 onTouch 返回 true,事件被消耗并且永远不会到达 onClick

只需将 onTouch 更改为 return false 并且您的 onClick 将被调用。

10-07 16:05