Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试在listview中滑动delete时,片段中listview项上出现空指针异常onFling_Android_Android Listview_Ontouchlistener - Fatal编程技术网

Android 尝试在listview中滑动delete时,片段中listview项上出现空指针异常onFling

Android 尝试在listview中滑动delete时,片段中listview项上出现空指针异常onFling,android,android-listview,ontouchlistener,Android,Android Listview,Ontouchlistener,我正在尝试在ListView项目上滑动删除 onFling(MotionEvent e1、MotionEvent e2、float velocityX、float velocityY),iam在摆动时在MotionEvent e1处变为null 请先帮我,谢谢 @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

我正在尝试在ListView项目上滑动删除

onFling(MotionEvent e1、MotionEvent e2、float velocityX、float velocityY),iam在摆动时在MotionEvent e1处变为null

请先帮我,谢谢

@Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        Log.e(THIS_FILE, "======onFling "+REL_SWIPE_MAX_OFF_PATH+" , "+e1+" , "+e2);
        if (Math.abs(e1.getY() - e2.getY()) > REL_SWIPE_MAX_OFF_PATH)
            return false;
        if (e1.getX() - e2.getX() > REL_SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > REL_SWIPE_THRESHOLD_VELOCITY) {

            int pos = getListView()
                    .pointToPosition((int) e1.getX(), (int) e2.getY());

            if (pos >= 0 && temp_position == pos)
                getSwipeItem(false, pos);
        } else if (e2.getX() - e1.getX() > REL_SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > REL_SWIPE_THRESHOLD_VELOCITY) {

            int pos = getListView()
                    .pointToPosition((int) e1.getX(), (int) e2.getY());
            if (pos >= 0 && temp_position == pos)
                getSwipeItem(true, pos);

        }
        return false;
    }
这是我的日志

09-05 14:41:45.086: E/DialerFragment(31827): ======onFling 333 , null , MotionEvent {     action=ACTION_UP, id[0]=0, x[0]=390.39392, y[0]=154.0, toolType[0]=TOOL_TYPE_FINGER,     buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0,     eventTime=197101507, downTime=197101342, deviceId=2, source=0x1002 }
09-05 14:41:45.086: E/InputEventReceiver(31827): Exception dispatching input event.
09-05 14:41:45.086: E/MessageQueue-JNI(31827): Exception in MessageQueue callback: handleReceiveCallback
09-05 14:41:45.116: E/MessageQueue-JNI(31827): java.lang.NullPointerException
09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at net.telivo.fiestacancun.ui.tablet.DialerFragment$MyGestureDetector.onFling(DialerFragment.java:    1660)
09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at     android.view.GestureDetector.onTouchEvent(GestureDetector.java:609)
      09-05 14:41:45.116: E/MessageQueue-JNI(31827):    at net.telivo.fiestacancun.ui.tablet.DialerFragment$12.onTouch(DialerFragment.java:967)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.View.dispatchTouchEvent(View.java:7379)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2203)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1938)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at     android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at     android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at    android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1966)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1418)
09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.app.Activity.dispatchTouchEvent(Activity.java:2424)
09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1914)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.View.dispatchPointerEvent(View.java:7564)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3883)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3778)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3483)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3540)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at     android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at     android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5419)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at     android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5399)
09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5370)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5493)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:182)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.os.MessageQueue.nativePollOnce(Native Method)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.os.MessageQueue.next(MessageQueue.java:132)
    09-05 14:41:45.116: E/MessageQueue-JNI(31827):  at android.os.Looper.l
    09-05 14:41:45.116: D/AndroidRuntime(31827): Shutting down VM
    09-05 14:41:45.116: W/dalvikvm(31827): threadid=1: thread exiting with uncaught exception (group=0x4184c700)

您的日志显示e1为空且
historySize=0
,因此它只有一个事件要报告。您需要添加一个空检查以确保两个事件都存在

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {
    Log.e(THIS_FILE, "======onFling "+REL_SWIPE_MAX_OFF_PATH+" , "+e1+" , "+e2);
    if (e1 == null || e2 == null) {
        return false;  // If it still gives you trouble return true
    }

    if (Math.abs(e1.getY() - e2.getY()) > REL_SWIPE_MAX_OFF_PATH)
        return false;
    if (e1.getX() - e2.getX() > REL_SWIPE_MIN_DISTANCE
            && Math.abs(velocityX) > REL_SWIPE_THRESHOLD_VELOCITY) {

        int pos = getListView()
                .pointToPosition((int) e1.getX(), (int) e2.getY());

        if (pos >= 0 && temp_position == pos)
            getSwipeItem(false, pos);
    } else if (e2.getX() - e1.getX() > REL_SWIPE_MIN_DISTANCE
            && Math.abs(velocityX) > REL_SWIPE_THRESHOLD_VELOCITY) {

        int pos = getListView()
                .pointToPosition((int) e1.getX(), (int) e2.getY());
        if (pos >= 0 && temp_position == pos)
            getSwipeItem(true, pos);

    }
    return false;
}

您的日志显示e1为空且
historySize=0
,因此它只有一个事件要报告。您需要添加一个空检查以确保两个事件都存在

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {
    Log.e(THIS_FILE, "======onFling "+REL_SWIPE_MAX_OFF_PATH+" , "+e1+" , "+e2);
    if (e1 == null || e2 == null) {
        return false;  // If it still gives you trouble return true
    }

    if (Math.abs(e1.getY() - e2.getY()) > REL_SWIPE_MAX_OFF_PATH)
        return false;
    if (e1.getX() - e2.getX() > REL_SWIPE_MIN_DISTANCE
            && Math.abs(velocityX) > REL_SWIPE_THRESHOLD_VELOCITY) {

        int pos = getListView()
                .pointToPosition((int) e1.getX(), (int) e2.getY());

        if (pos >= 0 && temp_position == pos)
            getSwipeItem(false, pos);
    } else if (e2.getX() - e1.getX() > REL_SWIPE_MIN_DISTANCE
            && Math.abs(velocityX) > REL_SWIPE_THRESHOLD_VELOCITY) {

        int pos = getListView()
                .pointToPosition((int) e1.getX(), (int) e2.getY());
        if (pos >= 0 && temp_position == pos)
            getSwipeItem(true, pos);

    }
    return false;
}

如果您想使用滑动删除功能,为什么不使用像这样的预制库呢?如果您想使用滑动删除功能,你为什么不使用像这样的预制库呢?

我在使用MyGestureDetector类扩展SimpleOnGestureListener我在使用MyGestureDetector类扩展SimpleOnGestureListener每次我得到null时,如何在每次我得到null时向前移动,如何向前移动谢谢你的回复,刷卡不是随意发生的。也就是说,如果我刷了10次,它会出现2到3次。请看我的问题-----在你的第一个链接之后,它会在其他项目中工作。但在这个项目中,它不起作用。银行拒绝回复,刷卡也不会随意发生。也就是说,如果我刷了10次,它会出现2到3次。请看我的问题-----在你的第一个链接之后,它会在其他项目中工作。但在这个项目中,它不起作用