本文介绍了空指针异常:GestureDetector.onTouchEvent自定义库中的Andr​​oid ICS为4.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的Andr​​oid应用程序之一,我使用自定义的画廊,以显示画廊图像。
(我用的,为了定制的画廊显示1项的时间交换画廊时)

In one of my android app, I am using custom gallery to show images in gallery .(I am using custom gallery in order to show 1 item a time when swapping the gallery)

下面是code,我使用自定义空间:

Here is the code that I am using for custom gallery :

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;

    }
}

以上code是工作的罚款2.2,2.3等等....但它的中轰然4.0 ​​ICS导致空指针异常GestureDetector.onTouchEvent

请帮忙。

先谢谢了。

推荐答案

我有同样的零星问题。传递到覆盖 onFling 法的两个 MotionEvent 参数有时无效,并要求 E2 .getX()抛出异常。您可以通过启动您的onFling方法是这样解决这个问题:

I had this same sporadic problem. The two MotionEvent parameters that is passed to the override onFling method are sometimes null and calling e2.getX() throws the exception. You can fix this by starting your onFling method like this:

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

这篇关于空指针异常:GestureDetector.onTouchEvent自定义库中的Andr​​oid ICS为4.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-25 03:08