没有onClickListener(),OnTouchListener()不起作用

时间:2014-05-02 12:39:32

标签: android imageview onclicklistener ontouchlistener

我遇到的问题是我不知道如何解决,以及为什么会发生这种情况。

很简单。我已经将ImageView作为一个按钮工作,当用户点击它时,屏幕上会移动一些东西,当触摸重新触发时,它会停止。

所以我只是在我的ImageView上设置了OnTouchListener并希望它可以工作,但它没有。

我需要实现空的OnClickListener,然后它会做它应该做的事情。

private void setSolveImage() {
    ImageView solve_button = (ImageView)getView().findViewById(R.id.solve_button);

    solve_button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {   
        }
    });

    solve_button.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
            if (action == MotionEvent.ACTION_DOWN) {
                    screen.setTilesOrder(status.getCleanStatus()); // do something with screen
            } else if (action == MotionEvent.ACTION_UP) {
                    screen.setTilesOrder(status.getGameStatus()); // return screen to previous state
            }
        }
        return false;
        }
    });
}

你能告诉我,我做错了什么吗?为什么我必须这样做?

2 个答案:

答案 0 :(得分:2)

只做一个改变并做一个技巧

return true;

return false;代替setOnTouchListener()

无需设置setOnClickListener()

答案 1 :(得分:1)

如果在触摸时消耗回调则返回true,否则返回false。所以在setOnTouchListener中将返回类型更改为true而不是false。