缺少返回语句onTouch

时间:2017-04-28 22:31:36

标签: android

boopSound.setOnTouchListener(new View.OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
            boop.start();
        }

    }

});

我收到错误说"缺少退货声明"我尝试创建一个按下按钮时按下按钮而不是按下它时播放声音的按钮,这就是为什么我使用的是OnTouchListener而不是OnClickListener

2 个答案:

答案 0 :(得分:1)

当然你应该返回一个布尔值。

返回值确定您是否使用了触摸事件。

换句话说,true表示此触摸事件对您而言非常有趣,并且此触摸事件的所有后续调用(如ACTION_MOVE或ACTION_UP)都将发送给您。

 boopSound.setOnTouchListener(new View.OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
            boop.start();
        }

        return true; //add this line
    }

});

答案 1 :(得分:0)

boopSound.setOnTouchListener(new View.OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
            boop.start();
        }
        return true;
    }
});

只需返回true即可执行该触摸事件。您还可以设置点击监听器,因为触摸事件可能会导致多次呼叫。