java.lang.IndexOutOfBoundsException:索引11无效,大小为11

时间:2012-05-31 10:06:03

标签: android saxparser

我正在进行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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

我认为这里是sitesList的大小,

使用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);

    }

答案 2 :(得分: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);

    }

答案 3 :(得分:0)

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

for(int i = 0; i&lt; sitesList.getPubdate()。size(); i ++)代替
for(int i = 0; i&lt; 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);
    }