位置0处的ArrayList IndexOutOfBoundsException

时间:2014-12-17 11:17:43

标签: java android arraylist

我在Android应用中遇到了一个奇怪的问题。 我有一个ArrayList,我尝试用get(0)获取第一个项目。 但由于IndexOutOfBoundsException,应用程序有时会崩溃。

代码:

int currentItemPosition = 0;
if(!mArrayList.isEmpty()) {
   currentItem = mArrayList.get(currentItemPosition);
}

怎么可能?

日志:

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
...

1 个答案:

答案 0 :(得分:0)

如上所述(单ArrayList,单线程,& c),问题似乎有点不可能"。但是,如果这个(http://pastebin.com/2fYnbG9b)是您的实际代码段:

private void showFirstItemOfPage() {
    mCurrentBlockItem = 0;
    if(mBlocksList.get(mPager.getCurrentItem()) != null && !mBlocksList.get(mPager.getCurrentItem()).isEmpty())
    {
        addSingleItem(mBlocksList.get(mPager.getCurrentItem()).get(mCurrentBlockItem));
    }      
}

也许答案是mBlocksList实际上是空的?您没有检查isEmpty() 那个列表,仅针对其中包含的列表。