【问题标题】:java OutOfBoundsException [duplicate]java OutOfBoundsException [重复]
【发布时间】:2016-11-11 21:29:01
【问题描述】:

我的问题是当我单击 SearchView 搜索项目时我有 arrayList,例如当我写百事可乐时系统显示消息不幸的是,您的应用程序已停止。

这是代码错误

            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)

【问题讨论】:

  • 这意味着您的数组大小小于您推送的元素数量。所以修复它
  • 这个问题已经从原来的版本完全改变,还原。如果您有其他问题,请通过“”链接提出新问题。

标签: java android indexoutofboundsexception


【解决方案1】:

你得到的错误正是它所说的,列表的大小是 3,当没有第三个元素时你试图获取第三个元素。要解决此问题,请执行

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

这将得到它之前的元素,这可能是你想要的。请记住,它从 0 开始作为索引,而不是 1。所以这三个元素在索引 0、1 和 2 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2014-05-05
    • 2015-12-24
    • 2013-12-08
    • 1970-01-01
    • 2015-09-08
    • 2012-01-01
    相关资源
    最近更新 更多