Как исправить проблему 'ArrayIndexOutOfBoundsException'? - PullRequest
0 голосов
/ 05 марта 2012

Это ошибка происходит в logcat, кто-нибудь может подсказать в чем смысл?

private int getDayIdxInTrip(int position) {
DayTagItem item = null;
    Integer dayIdx = -1;
    try {
        if (mTripItems.get(position).mViewType == TripDetailAdapter.DAYTAG_TYPE) {
            item = (DayTagItem) mTripItems.get(position);
        } else {
            Logger.e(TAG, "Wrong view type found on position == "
                    + position);
            position--;
            return getDayIdxInTrip(position);
        }
        dayIdx = Integer
                .parseInt(item.mDayIdx != null
                        && !item.mDayIdx.trim().equals("")
                        && !item.mDayIdx.trim().equalsIgnoreCase("null") ? item.mDayIdx
                        : "0");
    } catch (Exception e) {
        Logger.e(TAG, "getDayIdxInTrip() error!"+e.getMessage());
    }
    Logger.i(TAG,"returned"+dayIdx);
    return dayIdx;
}

03-05 16: 19: 10.092: E / AndroidRuntime (29009): java.lang.ArrayIndexOutOfBoundsException 03-05 16: 19: 10.092: E / AndroidRuntime (29009): вandroid.widget.AbsListView $ RecycleBin.addScrapView (AbsListView.java:4180) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): в android.widget.AbsListView.trackMotionScroll (AbsListView.java:3017) 03-0516: 19: 10.092: E / AndroidRuntime (29009): на android.widget.AbsListView.onTouchEvent (AbsListView.java:2117) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на android.widget.ListView.onTouchEvent (ListView.java:3377) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на android.view.View.dispatchTouchEvent (View.java:3766) 03-05 16: 19: 10.092: E/ AndroidRuntime (29009): в android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:897) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): в android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:936) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:936) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:936) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на com.android.internal.policy.impl.PhoneWindow $ DecorView.superDispatchTouchEvent (PhoneWindow.java:1746) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): в com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1117) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): at android.app.Activity.dispatchTouchEvent (Activity.java:2092) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): в com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent (PhoneWindow.java:1730) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): в android.view.ViewRoot.handleMessage(ViewRoot.java:1794) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на android.os.Handler.dispatchMessage (Handler.java:99) 03-05 16: 19: 10.092: E / AndroidRuntime(29009): на android.os.Looper.loop (Looper.java:143) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на android.app.ActivityThread.main (ActivityThread.java:4701) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): at java.lang.reflect.Method.invokeNative (собственный метод) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на java.lang.reflect.Method.invoke (Method.java:521) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:860) 03-05 16: 19: 10.092: E / AndroidRuntime (29009): в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618) 03-0516: 19: 10.092: E / AndroidRuntime (29009): at dalvik.system.NativeStart.main (собственный метод)

1 Ответ

0 голосов
/ 05 марта 2012

Из документации:

Брошенный, чтобы указать, что массив был получен с недопустимым индекс. Индекс либо отрицательный, либо больше или равен размер массива.

Пример:

int myArray = new int[10];
myArray[11] = 123;

Без кода мы мало чем можем помочь.

...