Java TouchEvent不工作时释放
以下是我在onTouchEvent中使用的方法代码: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.
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秒开始时,它会变为可见