-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)
GS - Apologise to Monica
  • 28,466
  • 10
  • 89
  • 111
Abdulelah
  • 53
  • 1
  • 1
  • 5

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