0

我正在研究 sax XML 解析。

Logcat 错误如...

java.lang.IndexOutOfBoundsException: Invalid index 11, size is 11 

我得到了错误

map.put("pubdate", sitesList.getPubdate().get(i));

for (int i = 0; i < sitesList.getName().size(); i++) {
        System.out.println("value of i==============>"+i);
        HashMap<String, String> map = new HashMap<String, String>();

        System.out.println("\nvalue of title==============>"+ sitesList.getName().get(i));

        map.put("title", sitesList.getName().get(i));
        map.put("pubdate", sitesList.getPubdate().get(i));
        map.put("desc", sitesList.getDesc().get(i));

         items.add(map);

    }

感谢大家。

4

4 回答 4

2

您确定 sitesList.getName() 的大小与 sitesList.getPubdate() 的大小相同吗?

因为该异常的唯一原因是 sitesList.getName() 大于 sitesList.getPubdate() :)

于 2012-05-31T10:10:23.130 回答
1

我认为这里的站点列表大小,

使用sitesList.size() 代替 sitesList.getName().size()

for (int i = 0; i < sitesList.size(); i++) {

        System.out.println("value of i==============>"+i);
        HashMap<String, String> map = new HashMap<String, String>();

        System.out.println("\nvalue of title==============>"+ sitesList.get(i).getName());

        map.put("title", sitesList.get(i).getName());
        map.put("pubdate", sitesList.get(i).getPubdate());
        map.put("desc", sitesList.get(i).getDesc());

        items.add(map);

    }
于 2012-05-31T10:09:04.047 回答
0

谢谢大家,最后我得到了解决我的问题的解决方案,这里的 sitesList.getName() 比 sitesList.getPubdate() 大,所以现在我使用

for (int i = 0; i < sitesList.getPubdate().size(); i++) 代替
for (int i = 0; i < sitesList.getName().size(); i++)

for (int i = 0; i < sitesList.getPubdate().size(); i++) {
        System.out.println("value of i==============>"+i);
        HashMap<String, String> map = new HashMap<String, String>();


        map.put("title", sitesList.getName().get(i));
        map.put("pubdate", sitesList.getPubdate().get(i));
        map.put("desc", sitesList.getDesc().get(i));

         items.add(map);
    }
于 2012-05-31T11:33:28.660 回答
0

你的循环看起来像:

for (int i = 0; i < sitesList.size(); i++) {
        System.out.println("value of i==============>"+i);
        HashMap<String, String> map = new HashMap<String, String>();

        System.out.println("\nvalue of title======>"+ sitesList.get(i).getName());

        map.put("title", sitesList.get(i).getName());
        map.put("pubdate", sitesList.get(i).getPubdate());
        map.put("desc",sitesList.get(i).getDesc());

         items.add(map);

    }
于 2012-05-31T10:15:56.890 回答