2012-03-05 6 views
0

Произошла ошибка в logcat, может ли кто-нибудь сказать, что значит?Как исправить проблему «ArrayIndexOutOfBoundsException»?

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: Е/AndroidRuntime (29009): java.lang.ArrayIndexOutOfBoundsException 03-05 16: 19: 10,092: Е/AndroidRuntime (29009): на андроид. widget.AbsListView $ RecycleBin.addScrapView (AbsListView.java:4180) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at android.widget.AbsListView.trackMotionScroll (AbsListView.java:3017) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at 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/A ndroidRuntime (29009): at android.view.View.dispatchTouchEvent (View.java:3766) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java: 897) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:936) 03-05 16: 19: 10.092: E/AndroidRuntime (29009) : at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:936) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:936) 03 -05 16: 19: 10.092: E/AndroidRuntime (29009): at 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): at 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): at android.os.Handler.dispatchMessage (Handler.java:99) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at android.os.Looper.loop (Looper.java:143) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at android.app.ActivityThread.main (ActivityThread.java:4701) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): при java.lang.reflect.Method.invokeNative (собственный метод) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at java.lang.reflect.Method.invoke (Method.java:521) 03-05 16: 19: 10.092: E/AndroidRuntime (29009) : at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:860) 03-05 16: 19: 10.092: E/AndroidRuntime (29009): at com.android.internal.os.ZygoteInit. Основной (ZygoteInit.java:618) 03-05 16: 19: 10,092: Е/AndroidRuntime (29009): в dalvik.system.NativeStart.main (нативный метод)

+2

Можете ли вы опубликовать код, где произошла авария приложения? – Hanon

+0

Это не помогает, если не отображается код Java –

+0

Похоже, он использует слушателей в ListView и перепутал индексы. Используете ли вы заголовок или снизу? – Tim

ответ

0

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

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

Пример:

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

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

+0

Нашли это, спасибо. – stream

+1

Я предполагаю, что он исходит из 'position--; return getDayIdxInTrip (позиция); ' – njzk2

Смежные вопросы