2016-11-11 6 views
-3

моя проблема в том, что у меня есть массивList, когда я нажимаю SearchView для поиска элемента, например, когда я пишу pepsi сообщение с сообщением системы. К сожалению, ваше приложение было остановлено.java OutOfBoundsException

Это ошибка в коде

  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) 
+0

это означает, что ваш размер массива меньше, чем вы нажимаете число element.so исправлено – Real73

+0

Этот вопрос был полностью изменен с оригинальной версии, возвращаясь. Если у вас есть другой вопрос, пожалуйста, задайте новый вопрос с помощью ссылки «Задать вопрос». –

ответ

1

Ошибка вы получаете именно то, что он говорит, размер списка 3, и вы пытаясь получить третий элемент, когда его нет. Чтобы исправить это, сделайте

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

Которая получит элемент перед ним, что, вероятно, то, что вы хотели. Помните, что он начинается с 0 как индекс, а не 1. Таким образом, три элемента находятся в индексах 0, 1 и 2.