java.lang.ArrayIndexOutOfBoundsException:length = 5;索引= 5

时间:2015-07-08 08:39:36

标签: java android

我是android开发的新手。我正在使用导航抽屉的应用程序,其中我有七个项目。我使用arraylist为他们在onCreate上显示。

navDrawerItems = new ArrayList<NavDrawerItem>();

    // adding nav drawer items to array
    // Home
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
    // Find People
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
    // Photos
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
    // Communities, Will add a counter here
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1), true, "22"));
    // Pages
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
    // What's hot, We  will add a counter here
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5,-1), true, "50+"));

     navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));

但我正面临这个问题。

引起:

java.lang.ArrayIndexOutOfBoundsException: length=5; index=5
            at com.almuntazah.application.Homepage.onCreate(Homepage.java:75)

任何人都可以用简单的话告诉我该怎么办?非常感谢。 实际上我在最后2个列表中得到错误。如果我删除它们,我就无法进入我的应用程序。

2 个答案:

答案 0 :(得分:2)

您需要从零开始计数,因此长度为5的数组的最后一个字段为4

示例:

    String examplearray[]=new String [5];
    System.out.println(examplearray.length)
    >>>5//this is the length
    examplearray={"1","2","3","4","5"}//filling the array
    System.out.println(examplearray.length)
    >>>5//still the same length
    System.out.println(examplearray[4])
    >>>"5"//the content of the examplearray[4] field

答案 1 :(得分:1)

你的数组navMenuTitles中有5个对象,从0到4. (Java中的数组从零开始)

在这里,您尝试访问从0到6的7个对象。此错误表示无法访问对象6和7(索引5和6),这是公平的,因为它们不存在。