如何在特定情况下捕获OnTouchEvent?

时间:2014-05-16 03:34:14

标签: java android events touch

我即将写一个小测验应用程序。我有4个按钮代表答案的可能性。按下一个按钮时,它应呈红色或绿色闪烁,表示是对还是错。到目前为止没问题。

但下一步应该是滑出旧问题并滑入新问题。这应该通过用户触摸屏幕上的任何位置来启动。

我怎样才能做到这一点?我必须使用哪种方法?

代码:

@Override
public void onClick(View v) {
    Button button = (Button)findViewById(v.getId());

    if(button.getText().equals(quizWorld.getCurrentQuestion().getRightAnswer())){
        //right
    }else{
        //wrong
    }
}

@Override
public boolean  onTouchEvent(MotionEvent event){
    switch(event.getAction()){
        case MotionEvent.ACTION_UP:
            //Game Over?
            if(quizWorld.swapQuestion()==false){
                viewFlipper.setDisplayedChild(1);
            }
            break;
    }
    return true;    
}

仅供说明:在onClick中,Programm将按钮上的文本与保存的答案进行比较并启动闪烁(尚未编码)。在onTouchEvent上它改变了问题。

现在:onTouchEvent应该只是"激活"当程序刚刚完成检查过程时。之后程序不应该对OnEventTouch作出反应。

1 个答案:

答案 0 :(得分:1)

如果您不需要处理触摸事件,只需返回false onTouchEvent并让触摸通过。

@Override
public boolean  onTouchEvent(MotionEvent event){
if (I don't need this touch)
{
   return false;
}
    switch(event.getAction()){
    case MotionEvent.ACTION_UP:
        //Game Over?
        if(quizWorld.swapQuestion()==false){
            viewFlipper.setDisplayedChild(1);
        }
        break;
    }
    return true;    
}