2012-06-29 62 views
3

在我的Android應用程序之一,我使用自定義的畫廊,以顯示畫廊圖像。 (我交換畫廊時使用,以顯示1項的時間定製圖庫)空指針異常:GestureDetector.onTouchEvent在Android的定製庫的ICS 4.0

這裏是我使用自定義庫中的代碼:

public class CustomGallery extends Gallery { 

    public CustomGallery(Context context) { 
      super(context); 
     } 

     public CustomGallery(Context context, AttributeSet attrs) { 
      super(context, attrs); 
     } 

     public CustomGallery(Context context, AttributeSet attrs, int defStyle) { 
      super(context, attrs, defStyle); 
     } 

    private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) { 
     return e2.getX() > e1.getX(); 
    } 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
      float velocityY) { 
     int kEvent; 
     if (isScrollingLeft(e1, e2)) { // Check if scrolling left 
      kEvent = KeyEvent.KEYCODE_DPAD_LEFT; 
     } else { // Otherwise scrolling right 
      kEvent = KeyEvent.KEYCODE_DPAD_RIGHT; 
     } 
     onKeyDown(kEvent, null); 
     return true; 

    } 
} 

上面的代碼工作正常2.2 ,2.3等....但它的在ICS 4.0中崩潰導致空指針異常GestureDetector.onTouchEvent

請幫助。

在此先感謝。

+2

我只注意到這個問題是因爲....定製的畫廊或所有這些不是.....問題是由於接頭主機....當我嘗試使用StartActvity()方法啓動actvity時,它不會崩潰,但是當我開始將activity作爲當前活動的子節點時......在標籤主機中..崩潰來臨......任何一個有這麼一個想法,因爲我必須開始這個孩子,而不是一個單一的行爲....這裏是我的代碼:** Intent i = new Intent(A.this,A_Detail.class); \t \t \t \t TabGroupActivity parent =(TabGroupActivity)getParent(); \t \t \t (父).startChildActivity(PLAT_PAGE_ID,I); ** –

回答

0

我有同樣的問題只發生在ICS4.0 - 我GalleryView是打開TabHost內的Activity當用戶點擊Gallery一個項目 - 它總是給人NullPointerException但僅限於ICS4 - 我最後做的接下來的訣竅:

//flag returned by onTouch event always false except when we are about to start activity 
boolean flag = false; 
//add a touch listener 
myGallery.setOnTouchListener(new OnTouchListener() { 
@Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return flag; 
    } 
}); 

myGallery.setOnItemClickListener(new OnItemClickListener() { 
    //handle clicks 

    //set flag returned by touch listener to true 
    flag = true; 

    //now add logic to open up the activity 
} 

例外現在已經在ICS4上。

0

我有同樣的問題零星。傳遞給覆蓋onFling方法的兩個MotionEvent參數有時爲空,並調用e2.getX()引發異常。您可以通過啓動您的onFling方法是這樣解決這個問題:

if (e1 == null || e2 == null) return false;