Android NPE,每次我尝试删除ListView中的第一个可见项时

Android NPE,每次我尝试删除ListView中的第一个可见项时,android,eclipse,listview,android-listview,Android,Eclipse,Listview,Android Listview,我需要帮助弄清楚为什么每次尝试删除listView中的第一项(可见)时都会出现空指针异常。删除其他每一项都可以正常工作,没有任何错误,但第一项始终失败 代码如下: private void deleteCurrentItem() { ContextualUndoView contextualUndoView = (ContextualUndoView) mDismissView; int position = getAbsListView().getPositio

我需要帮助弄清楚为什么每次尝试删除listView中的第一项(可见)时都会出现空指针异常。删除其他每一项都可以正常工作,没有任何错误,但第一项始终失败

代码如下:

private void deleteCurrentItem() {
        ContextualUndoView contextualUndoView = (ContextualUndoView) mDismissView;
        int position = getAbsListView().getPositionForView(contextualUndoView);


        mDeleteItemCallback.deleteItem(position);

    }
详细代码:

错误日志:

08-10 19:09:22.107: E/AndroidRuntime(973): FATAL EXCEPTION: main
08-10 19:09:22.107: E/AndroidRuntime(973): java.lang.NullPointerException
08-10 19:09:22.107: E/AndroidRuntime(973):  at android.widget.AdapterView.getPositionForView(AdapterView.java:597)
08-10 19:09:22.107: E/AndroidRuntime(973):  at com.haarman.listviewanimations.itemmanipulation.contextualundo.ContextualUndoAdapter$RemoveViewAnimatorListenerAdapter.deleteCurrentItem(ContextualUndoAdapter.java:205)
08-10 19:09:22.107: E/AndroidRuntime(973):  at com.haarman.listviewanimations.itemmanipulation.contextualundo.ContextualUndoAdapter$RemoveViewAnimatorListenerAdapter.onAnimationEnd(ContextualUndoAdapter.java:193)
08-10 19:09:22.107: E/AndroidRuntime(973):  at com.nineoldandroids.animation.ValueAnimator.endAnimation(ValueAnimator.java:1034)
08-10 19:09:22.107: E/AndroidRuntime(973):  at com.nineoldandroids.animation.ValueAnimator.cancel(ValueAnimator.java:968)
08-10 19:09:22.107: E/AndroidRuntime(973):  at com.haarman.listviewanimations.itemmanipulation.contextualundo.ContextualUndoAdapter$RecycleViewListener.onMovedToScrapHeap(ContextualUndoAdapter.java:276)
08-10 19:09:22.107: E/AndroidRuntime(973):  at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6449)
08-10 19:09:22.107: E/AndroidRuntime(973):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1256)
这一行:

ContextualUndoView contextualUndoView = (ContextualUndoView) mDismissView;
声明视图,但不实例化它(因此它仍然是
null

在下一行

int position = getAbsListView().getPositionForView(contextualUndoView);

您尝试使用视图,但它仍然为空,因此您会得到一个空指针。

该视图
mDismissView
在类的前面已实例化。您可以参考完整的代码来查看它的实例化位置。还要记住,此错误只发生在listView的第一个项目上。