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

标签 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 中,程序将按钮上的文本与保存的答案进行比较,并启动闪烁(尚未编码)。在 onTouchEvent 上它改变了问题。

现在:onTouchEvent 应该仅在程序刚刚完成检查过程时“激活”。之后程序不应对 OnEventTouch 使用react。

最佳答案

如果不需要处理触摸事件,只需在onTouchEvent上返回false,让触摸通过即可。

@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;    
}

关于java - 如何在特定情况下捕获OnTouchEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23692216/

相关文章:

java - 从自定义布局中的 EditText 中获取值

java - 无法在项目 spring-boot-keycloak 上执行目标 org.apache.maven.plugins :maven-clean-plugin:3. 1.0:clean (default-clean)

android - 我遇到安装错误,不知道该怎么办

java - 带有 Maven 的 Google Play 服务已添加异常(exception)

android - 如何在 opengl Android 中进行对象检测?

angular - 使用@Input 和@Output 的自定义事件

java - 使 Swagger 在生成的模型中使用原始 int 和 boolean

android - 应用程序在谷歌市场上不可用 Galaxy S4

javascript - 将大写特殊字符转换为小写特殊字符的最简单方法是什么?

java - MapReduce程序,用于比较配置单元输出和平面文件