-3

my problem is i have arrayList when i click SearchView to search for item, for example when i write pepsi the system show message Unfortunately, your application has been stopped.

This is error in the code

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

This is error message

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)
Ganesh Sittampalam
  • 28,821
  • 4
  • 79
  • 98
Abdulelah
  • 53
  • 1
  • 1
  • 5
  • it means your array size is less than you push number of element.so fixed it – Real73 Nov 11 '16 at 21:32
  • This question has been completely changed from the original version, reverting. If you have a different question, please ask a new question with the "Ask Question" link. – Ganesh Sittampalam Nov 12 '16 at 11:34

1 Answers1

1

The error you are getting is exactly what it's saying, the size of the list is 3, and you are trying to get the third element when there isn't one. To fix this, do

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

Which will get the element before it, which is probably what you wanted. Remember that it starts as 0 as the index, not 1. So the three elements are in indexes 0, 1, and 2.

jthort
  • 409
  • 4
  • 14