我写了一个自定义
ListView
,名为MyListView
。在这个自定义类,我有一个像下面的方法:Custom ListView view = getChildAt(0)throw NullPointerExceptionpublic int getComputedScrollY() { int pos, nScrollY, nItemY = 0; View view = null; // To get the first visible item position pos = getFirstVisiblePosition(); // get the item view whose position is 0 ***view = getChildAt(0);*** if (view != null) { nItemY = view.getTop(); } int totalOffset = 0; for (int i = 0; i < pos; i++) { totalOffset += mItemsHeight.get(i); } nScrollY = totalOffset - nItemY; return nScrollY; }
MyListView
一个活动时,我第一次对其进行初始化,一切正常。但是在我使用的应用程序很长一段时间,谁拥有
MyListView
活动,停留在停止状态(其onStop()
被调用后)很长一段时间。然后我跳回到上面的代码,行view = getChildAt(0)
将会抛出NullPointerException
。这是第一种情况。- 另一种情况是,当我使用其他活动并抛出任何异常时,应用程序将自动跳回到拥有MyListView的活动。那么上面的代码,同一行,
view = getChildAt(0)
也会抛出NullPointerException
。
我不知道为什么。
请粘贴堆栈跟踪 –
是的,请显示您的logcat。没有它,这是一个猜谜游戏。 – Sufian