我是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个列表中得到错误。如果我删除它们,我就无法进入我的应用程序。
答案 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),这是公平的,因为它们不存在。