0

私は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;
        }
    });

}
4

3 に答える 3

2

あなたの活動の中で:

@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);
            }
});
于 2013-06-10T07:13:07.447 に答える
0

ダブルタップのようなものを探している場合は、 GestureDetector.OnDoubleTapListenerを使用する必要があります。

于 2013-06-10T07:17:49.407 に答える
0

これを試して

   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;
    }
}
于 2013-06-10T07:14:42.097 に答える