RSS应用程序停止

时间:2012-11-20 19:14:52

标签: android parsing casting rss

我关注了这个RSS阅读器Tutorial

所以起初我在这行中出错:

Uri uri = Uri.parse(links.get(position));

我收到了错误,我必须将它转换为这样的字符串:

Uri uri = Uri.parse((String) links.get(position));

之后可以运行App。 但是,如果我想打开一个ListView元素,应用程序每次都会停止.... 有谁知道什么是错的?

这里是logcat:

11-20 19:25:19.027: E/AndroidRuntime(505): FATAL EXCEPTION: main
11-20 19:25:19.027: E/AndroidRuntime(505): java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
11-20 19:25:19.027: E/AndroidRuntime(505):  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
11-20 19:25:19.027: E/AndroidRuntime(505):  at java.util.ArrayList.get(ArrayList.java:311)
11-20 19:25:19.027: E/AndroidRuntime(505):  at com.rss_reader.MainActivity.onListItemClick(MainActivity.java:111)
11-20 19:25:19.027: E/AndroidRuntime(505):  at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
11-20 19:25:19.027: E/AndroidRuntime(505):  at android.widget.AdapterView.performItemClick(AdapterView.java:284)
11-20 19:25:19.027: E/AndroidRuntime(505):  at android.widget.ListView.performItemClick(ListView.java:3513)
11-20 19:25:19.027: E/AndroidRuntime(505):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
11-20 19:25:19.027: E/AndroidRuntime(505):  at android.os.Handler.handleCallback(Handler.java:587)
11-20 19:25:19.027: E/AndroidRuntime(505):  at android.os.Handler.dispatchMessage(Handler.java:92)
11-20 19:25:19.027: E/AndroidRuntime(505):  at android.os.Looper.loop(Looper.java:123)
11-20 19:25:19.027: E/AndroidRuntime(505):  at android.app.ActivityThread.main(ActivityThread.java:3683)
11-20 19:25:19.027: E/AndroidRuntime(505):  at java.lang.reflect.Method.invokeNative(Native Method)
11-20 19:25:19.027: E/AndroidRuntime(505):  at java.lang.reflect.Method.invoke(Method.java:507)
11-20 19:25:19.027: E/AndroidRuntime(505):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-20 19:25:19.027: E/AndroidRuntime(505):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-20 19:25:19.027: E/AndroidRuntime(505):  at dalvik.system.NativeStart.main(Native Method)

在我阅读了描述后,我认为Uri可能是null,因为:

抛出 如果uriString为null,则为NullPointerException

但为什么它为null?我不知道......

编辑:教程的链接是错误的...但现在我找到了正确的。

2 个答案:

答案 0 :(得分:1)

LogCat中的重要信息是:

java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0

表示您的links列表为空,然后是:

    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
    at java.util.ArrayList.get(ArrayList.java:311)
    at com.rss_reader.MainActivity.onListItemClick(MainActivity.java:111)

您可以看到,您尝试在第111行的links方法中读取onListItemClick()(不存在)中的值,如上所述:

Uri uri = Uri.parse((String) links.get(position));

必须在某个时刻用links将数据添加到links.add()列表中......

答案 1 :(得分:0)

你的罪魁祸首在这里:

com.rss_reader.MainActivity.onListItemClick(MainActivity.java:111)
MainActivity.java的第111行

编辑

然后它意味着您到达数据之外,或更确切地说

java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0

当您尝试获取第3个元素时,links为空,因此IndexOutOfBounds异常。检查为什么links未正确初始化或执行其他检查以确保您的position设置为适合环境。