2012-02-16 11 views
6

हाय SimpleOnGestureListener मेरे आवेदन में काम नहीं करता है इस प्रकार मैं इसे कार्यान्वित कर रहा हूं। शायद आप गलत क्या कर सकते हैं। चीज डीबगिंग है यह दिखाती है कि एप्लिकेशन ऑनफलिंग (...) मेथोड और gdt.onTouchEvent (ईवेंट) में कभी नहीं जाता है; हमेशा झूठा देता है:/ कोई विचार ?? धन्यवादSimpleOnGestureListener कभी भी चालू नहीं होता है (...) विधि

मेरी गतिविधि वर्ग

public class SimpleActivity extends Activity{ 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.simpleLayout); 

    final ImageView imageView = (ImageView) findViewById(R.id.gggbbb); 
    imageView.setOnTouchListener(new OnFlingGestureListener() { 

     @Override 
     public void onTopToBottom() { 
      System.out.println("top"); 
     } 

     @Override 
     public void onRightToLeft() { 
      System.out.println("right"); 
     } 

     @Override 
     public void onLeftToRight() { 
      System.out.println("left"); 
     } 

     @Override 
     public void onBottomToTop() { 
      System.out.println("bottom"); 
     } 
    }); 



} 


    } 

मेरी सार श्रोता

package com.dmd.client.detailsMenus; 

import android.view.GestureDetector; 
import android.view.GestureDetector.SimpleOnGestureListener; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 

public abstract class OnFlingGestureListener implements OnTouchListener { 

    private final GestureDetector gdt = new GestureDetector(new GestureListener()); 

    @Override 
    public boolean onTouch(final View v, final MotionEvent event) { 
    return gdt.onTouchEvent(event); 
    } 

    private final class GestureListener extends SimpleOnGestureListener { 

    private static final int SWIPE_MIN_DISTANCE = 60; 
    private static final int SWIPE_THRESHOLD_VELOCITY = 100; 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
      onRightToLeft(); 
      return true; 
      } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
      onLeftToRight(); 
      return true; 
      } 
      if(e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) { 
      onBottomToTop(); 
      return true; 
      } else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) { 
      onTopToBottom(); 
      return true; 
      } 
      return false; 
    } 
    } 

    public abstract void onRightToLeft(); 

    public abstract void onLeftToRight(); 

    public abstract void onBottomToTop(); 

    public abstract void onTopToBottom(); 

} 

उत्तर

16

इस घटना बदलें:

@Override 
public boolean onTouch(final View v, final MotionEvent event) { 
    gdt.onTouchEvent(event); 
    return true; 
} 

यह

+0

यह काम करता है काम करना चाहिए! धन्यवाद –

संबंधित मुद्दे