访问“降低”列表中的行时ListView空指针异常

时间:2012-08-07 14:32:07

标签: android listview nullpointerexception

所以我有一个包含大约10行数据的ListView。它渲染得很好,但是当我尝试做一个mListView.getChildAt(索引)时;调用时,如果结果视图低于并且包括从顶部开始的第5行,则结果视图为NULL。

这是我打电话的地方,一个logcat,并提前真诚地感谢你:

View r = manageTransfersList.getChildAt(mTaskIndex);

传递mTaskIndex
public void onListItemClick(ListView l, View v, int position, long id) {
            ...
            mTaskIndex = position;
    ...
}

logcat的:

08-07 09:15:12.420: E/AndroidRuntime(7657): FATAL EXCEPTION: main
08-07 09:15:12.420: E/AndroidRuntime(7657): java.lang.NullPointerException
08-07 09:15:12.420: E/AndroidRuntime(7657):     at org.globus.globus.transfer.ManageTransfersFragment$TaskDetailsDialogFragment$1.onClick(ManageTransfersFragment.java:469)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at android.view.View.performClick(View.java:4084)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at android.view.View$PerformClick.run(View.java:16966)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at android.os.Handler.handleCallback(Handler.java:615)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at android.os.Looper.loop(Looper.java:137)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at android.app.ActivityThread.main(ActivityThread.java:4896)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at java.lang.reflect.Method.invokeNative(Native Method)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at java.lang.reflect.Method.invoke(Method.java:511)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
08-07 09:15:12.420: E/AndroidRuntime(7657):     at dalvik.system.NativeStart.main(Native Method)

2 个答案:

答案 0 :(得分:1)

尝试使用您想要的数据项

 manageTransfersList.getAdapter().getItem(mTaskIndex);

或者如果您想要视图,只需使用onListItemClick中的“v”参数(无需通过适配器获取项目或按子索引搜索)

答案 1 :(得分:0)

我认为您想要转到列表的适配器而不是列表,以获取位置n处的项目或位置n处的视图的详细信息。

即。我的项目有:

IconifiedText text =(IconifiedText)adapter.getItem(position);