Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TouchEvent不工作时释放_Java_Android_Touch - Fatal编程技术网

Java TouchEvent不工作时释放

Java TouchEvent不工作时释放,java,android,touch,Java,Android,Touch,以下是我在onTouchEvent中使用的方法代码: public void touch(MotionEvent event) { // starta = "klicka för att börja"; if (event.getAction() == MotionEvent.ACTION_DOWN) { starta = "Click to start"; fN.aktivitetNer.start(); if (event.

以下是我在onTouchEvent中使用的方法代码:

public void touch(MotionEvent event) {
    // starta = "klicka för att börja";

    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        starta = "Click to start";
        fN.aktivitetNer.start();

        if (event.getAction() == MotionEvent.ACTION_CANCEL) {
            if (y == -300) {
                touch(event);
            }

            else if (y > -300) {
                fN.aktivitetNer.interrupt();
                fU.aktivitetUpp.start();
                p++;
            }
        }

        else if (y2 <= y + xMax) {
            fN.aktivitetNer.interrupt();
            fU.aktivitetUpp.start();
            p = 0;
        }
    }
}
应该发生的事情是,一把刀在一根线的帮助下快速落下fn.aktivitetNer,如果刀划破了手指2,你松开了,如果你足够快,你得一分p,当你松开或赢了,刀会随着另一根线再次落下fn.aktivitetNer 我知道它并不完美,但它现在已经开始工作了!
注:如果在屏幕上单击两次,程序将崩溃。

那么它肯定不会以当前形式工作,因为代码永远不会进入第二条if语句

您的第一个if语句断言event.getAction==MotionEvent.ACTION\u DOWN。如果这是真的,那么atevent.getAction不可能等于MotionEvent.ACTION\u CANCEL,您将永远不会输入该代码块

因为我不知道你的线程是做什么的,所以我不能确定,但你可能想要这样的东西:

public void touch(MotionEvent event)
{
    // starta = "klicka för att börja";

    int actionCode = event.getAction();
    if (actionCode == MotionEvent.ACTION_DOWN)
    {
        //Start to drop knife
    }

    else if (actionCode == MotionEvent.ACTION_CANCEL || actionCode == MotionEvent.ACTION_UP)
    {
        if (Knife is falling, and touch point is below knife)
        {
            //Add one to score
        }
        else if (Knife is falling, and touch point is above knife)
        {
            //Reset score to 0
        }

    }

    else if (Knife has already fallen and still touching screen)
    {
        //Reset score to 0
    }
}

它仍然不起作用:点不起作用,我仍然不能在屏幕上点击两次而不崩溃。。。还有一件事,start=单击开始不会立即变为可见,当线程在单击后5-10秒开始时,它会变为可见