我如何修改下面的代码,以便当用户在屏幕上双击时,应用程序/拼图重新启动?任何帮助都是非常感谢的。
return true;
}
public boolean onTouchEvent( MotionEvent event ) {
detector.onTouchEvent( event );
return true;
}
private class DoubleTapHandler
extends GestureDetector.SimpleOnGestureListener {
public boolean onDoubleTapEvent( MotionEvent event ) {
int touchY = ( int ) event.getRawY( );
// y coordinate of the touch within puzzleView is
// touchY - actionBarHeight - statusBarHeight
int index = puzzleView.indexOfTextView( touchY
- actionBarHeight - statusBarHeight );
if( puzzleView.getTextViewText( index )
.equals( puzzle.wordToChange( ) ) )
puzzleView.setTextViewText( index, puzzle.replacementWord( ) );
return true;
}
}
}发布于 2020-07-22 14:53:28
这不是一个完美的解决方案,但确实有效:)
private fun setDoubleClick() {
var numOfClicks = 0
[View].setOnClickListener {
numOfClicks++
if (numOfClicks == 2) {
//onDoubleClick
numOfClicks = 0
} else {
Handler().postDelayed({ numOfClicks = 0 }, 2000/*Set this according to desired doubleclick speed*/ )
}
}
}发布于 2020-07-22 15:28:59
final GestureDetector gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
//doubletap method
@Override
public boolean onDoubleTap(MotionEvent e) {
//put what do you want when double tap
restartApplication();
return true;
}
@Override
public void onLongPress(MotionEvent e) {
super.onLongPress(e);
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
return true;
}
@Override
public boolean onDown(MotionEvent e) {
return true;
}
});现在将探测器连接到您的视图触摸监听器
yourView.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch (View v, MotionEvent event){
return gestureDetector.onTouchEvent(event);
}
});下面是重新启动函数
void restartApplication(){
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
}https://stackoverflow.com/questions/63028356
复制相似问题