2011-12-16 54 views
1

我有一個gridview顯示一些圖像。我已經實現了一個ViewFlipper來導航gridviews頁面,我的問題是我現在不能使用onItemClickListener。GridView獲取x和y座標的項目

我試圖用onSingleTapConfirmed來代替。

這是MyGestureDetector類:

class MyGestureDetector extends SimpleOnGestureListener { 

    private static final int SWIPE_MIN_DISTANCE = 120; 
    private static final int SWIPE_MAX_OFF_PATH = 250; 
    private static final int SWIPE_THRESHOLD_VELOCITY = 200; 

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     System.out.println(" in onFling() :: "); 
     if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
      return false; 
     if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE 
       && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
      vf.setInAnimation(inFromRightAnimation()); 
      vf.setOutAnimation(outToLeftAnimation()); 
      vf.showNext(); 
     } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE 
       && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
      vf.setInAnimation(inFromLeftAnimation()); 
      vf.setOutAnimation(outToRightAnimation()); 
      vf.showPrevious(); 
     } 
     return super.onFling(e1, e2, velocityX, velocityY); 
    } 

    @Override 
    public boolean onSingleTapConfirmed(MotionEvent e) { 
     // TODO Auto-generated method stub 
     Log.e("Item Click","Item Click"); 

     return super.onSingleTapConfirmed(e); 
    } 

} 

我現在需要做的是在GridView的項已通過x和y座標(e.getX()和e.getY()點擊捕獲)。

有人在這裏回答https://stackoverflow.com/a/6419223/1025506使用pointToPosition方法應該可以工作,但我不知道如何實現這一點。

感謝和抱歉我的英語。

回答

5

我終於設法在onSingleTapConfirmed裏面使用gridview pointtoposition()方法來做到這一點。

if (myGridView.pointToPosition((int)e.getX(), (int)e.getY())!=-1) { 
    myItem = myAdapter.getItem(myGridView.pointToPosition((int)e.getX(), (int)e.getY())); 
} 
+0

我的偶像......我非常愛你,moahhhh:3 – kemdo 2015-02-05 08:22:05