列表:private List<EventRect> mEventRects;
此列表包含记录event.getIdOperatore() == 1
和event.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]);
...
...
}
答案 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)