Android ArrayIndexOutOfBoundsException:length = 2;索引= 2

时间:2015-10-12 21:19:03

标签: android arrays loops for-loop

列表:private List<EventRect> mEventRects; 此列表包含记录event.getIdOperatore() == 1event.getIdOperatore() == 3 我收到这个错误:

 java.lang.ArrayIndexOutOfBoundsException: length=2; index=2

代码:

int [] o = {1,3};
private void drawEvents(float startFromPixel, Canvas canvas) {
    if (mEventRects != null && mEventRects.size() > 0) {
        for (int i = 0; i < mEventRects.size(); i++) {
            if(mEventRects.get(i).event.getIdOperatore() == o[i]){
                Log.d("mEventRects",
                mEventRects.get(i).event.getIdOperatore() + 
                " idOperatore " + o[i]);
...
...
}

2 个答案:

答案 0 :(得分:1)

看起来像mEventRects.size() != o.length

如果你确定他们是平等的,那么试试这样:

for (int i = 0; i<mEventRects.size() && i<o.length; < i++) {

答案 1 :(得分:0)

你的int数组pin_ptr只有两个元素。所以在你的int[] o循环中,如果你的迭代器高于1,你就会得到异常。因此,要使此代码生效,您的for()必须为2或更低。

不要将1和3存储在int数组中,只需在mEventRects.size()循环中显式测试它们。所以不要这样:

for()

你想要这样做:

if(mEventRects.get(i).event.getIdOperatore() == o[i])

...或

if(mEventRects.get(i).event.getIdOperatore() == 1)