/ / java OutOfBoundsException [дубликат] - java, android, indexoutofboundsexception

java OutOfBoundsException [дубликат] - java, android, indexoutofboundsexception

проблемът ми е, че имам arrayList, когато щракнете върху SearchView за търсене на елемент, например когато пиша pepsi съобщението на системата за съжаление, вашето приложение е спряно.

Това е грешка в кода

            ImageLoader.getInstance().displayImage(ittList.get(position).getPic(), holder.ivPic1, new ImageLoadingListener()

Това е съобщение за грешка

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.abdulelahaldajani.testitem, PID: 6129
java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.example.abdulelahaldajani.testitem.ShowItemsActivity$itemAdapter.getView(ShowItemsActivity.java:275)
at android.widget.AbsListView.obtainView(AbsListView.java:2346)
at android.widget.GridView.makeAndAddView(GridView.java:1439)
at android.widget.GridView.makeRow(GridView.java:366)
at android.widget.GridView.fillDown(GridView.java:307)
at android.widget.GridView.fillSpecific(GridView.java:587)
at android.widget.GridView.layoutChildren(GridView.java:1293)
at android.widget.AbsListView.onLayout(AbsListView.java:2148)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:435)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)

Отговори:

1 за отговор № 1

Грешката, която получавате, е точно това, което казва, размерът на списъка е 3 и се опитвате да получите третия елемент, когато няма такъв. За да поправите това, направете

   ImageLoader.getInstance().displayImage(ittList.get(position-1).getPic(), holder.ivPic1, new ImageLoadingListener()

Кой ще получи елемента преди него, което вероятно е това, което сте искали. Не забравяйте, че той започва като 0 като индекс, а не 1. Така че трите елемента са в индекси 0, 1 и 2.