空指针异常:用于ICS 4.0的android中自定义库的GestureDetector.onTouchEvent

时间:2012-06-29 10:26:31

标签: android nullpointerexception gallery android-4.0-ice-cream-sandwich

在我的一款Android应用中,我使用自定义图库在图库中显示图片。 (我正在使用自定义图库,以便在交换图库时显示1个项目)

以下是我用于自定义图库的代码:

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中导致Null指针异常GestureDetector.onTouchEvent

请帮忙。

先谢谢。

2 个答案:

答案 0 :(得分:1)

我有同样的零星问题。传递给覆盖MotionEvent方法的两个onFling参数有时为null,并且调用e2.getX()会抛出异常。您可以通过启动onFling方法来解决此问题:

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

答案 1 :(得分:0)

我在ICS4.0上遇到同样的问题 - 我的Gallery View在用户点击{{1}上的项目时在Activity内打开了TabHost 1}} - 它总是给Gallery,但仅限于ICS4 - 我最终做了以下操作:#/ p>

NullPointerException

现在,ICS4上出现了例外情况。