Android上的双击事件';s屏幕

Android上的双击事件';s屏幕,android,toast,double-click,Android,Toast,Double Click,我是Android新手。实际上,每当我双击android屏幕(布局)时,我都想创建一个Toast。但每当我双击屏幕时,什么都没有发生。请解决我的问题 public class MainActivity extends Activity implements OnDoubleTapListener,OnGestureListener{ int clickCount = 0; long startTime; long duration; static final int M

我是Android新手。实际上,每当我双击android屏幕(布局)时,我都想创建一个
Toast
。但每当我双击屏幕时,什么都没有发生。请解决我的问题

public class MainActivity extends Activity implements OnDoubleTapListener,OnGestureListener{

   int clickCount = 0;
   long startTime;
   long duration;
   static final int MAX_DURATION = 500;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    GestureDetector detector = new GestureDetector(this,this);
    detector.setOnDoubleTapListener(new OnDoubleTapListener() {

        @Override
        public boolean onSingleTapConfirmed(MotionEvent e) {
            if(e.getAction()==1)
            {
            Toast.makeText(getBaseContext(), "onSingleTapConfirmed", Toast.LENGTH_LONG).show();
            }
        return true;
        }

        @Override
        public boolean onDoubleTapEvent(MotionEvent e) {
            if(e.getAction()==1)
            {
            Toast.makeText(getBaseContext(), "onDoubleTapEvent", Toast.LENGTH_LONG).show();
            }
            return true;
        }

        @Override
        public boolean onDoubleTap(MotionEvent e) {
            if(e.getAction()==1)
            {
            Toast.makeText(getBaseContext(), "onDoubleTap", Toast.LENGTH_LONG).show();
            }
            return true;
        }
    });

}
在您的活动中:

@Override
public boolean onTouchEvent(MotionEvent event) {
    return detector.onTouchEvent(event);
}
如果要在特定视图上附加Dector

LinearLayout layout = (LinearLayout) findViewById(R.id.yourLinearLayoutId);
layout.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {      
                return detector.onTouchEvent(event);
            }
});
试试这个

   LinearLayout layout = (LinearLayout) findViewById(R.id.yourLinearLayoutId);
   layout .setOnTouchListener(this);
   gestureDetector = new GestureDetector(new MyGestureDetector());
并像内部类一样使用这个类

 public class MyGestureDetector extends SimpleOnGestureListener implements OnGestureListener   {

           @Override
           public boolean onDoubleTap(MotionEvent e) {
             Toast.makeText(getBaseContext(), "onDoubleTapEvent", Toast.LENGTH_LONG).show();

                return super.onDoubleTap(e);

                }
            }


@Override
public boolean onTouch(View v, MotionEvent event) {
    if (gestureDetector.onTouchEvent(event)){
        Log.v(TAG,"screen touched");
        return true;
    }
    else{
        return false;
    }
}

如果你在寻找类似双击的东西,那么你必须使用

ok..但是如果我有一个线性布局,那么,如果我在任何地方单击,它会工作吗?单击后,我想要一个弹出窗口?@Aditya你想只在你的线性布局上使用双击事件吗?@blackbelt是的,先生..我只有一个简单的线性布局。我只想在布局上。这意味着我必须在我已经存在的类中编写另一个类?最好你可以这样使用。@SankarV是的,我有已经用过了。我想点击线性布局中的任何地方