热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ViewHolderArrayIndexOutOfBoundsException:length=2;索引=2

如何解决《ViewHolderArrayIndexOutOfBoundsException:length=2;索引=2》经验,为你挑选了1个好方法。

我尝试使用两种类型的视图和两种类型的ViewHolrdes,但收到错误:

java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
        at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6705)
        at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5210)
        at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4368)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776)
        at android.view.Choreographer.doCallbacks(Choreographer.java:579)
        at android.view.Choreographer.doFrame(Choreographer.java:547)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762)
        at android.os.Handler.handleCallback(Handler.java:800)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:194)
        at android.app.ActivityThread.main(ActivityThread.java:5371)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
        at dalvik.system.NativeStart.main(Native Method)

这是我的适配器:

public class FriendsListAdapterFromKesh extends ArrayAdapter {
    List friends;
    List friendsWithoutPoints;
    Context context;
    private LayoutInflater inflater;
    private LayoutInflater mLayoutInflater;
    private static String ROOT_DIRECTORY_PATH = Environment.getExternalStorageDirectory() + File.separator + ".SleepKeeker/Photos old";
    FriendsTab friendsTab;

    public FriendsListAdapterFromKesh(Context context, final List friends, final List friendsWithoutPoints) {
        super(context, 0);
        this.cOntext= context;
        inflater = LayoutInflater.from(context);
        this.friendsWithoutPoints = friendsWithoutPoints;
        this.friends = friends;
        friendsTab = new FriendsTab();
        mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public void updateList(List newlist1, List newlist2) {
        friends.clear();
        friends.addAll(newlist1);
        friendsWithoutPoints.clear();
        friendsWithoutPoints.addAll(newlist2);
        this.notifyDataSetChanged();
    }

    public List getFriends() {
        return friends;
    }

    @Override
    public int getCount() {
        return friends.size() + friendsWithoutPoints.size();
    }

    public String getIdSocTypeName(int position) {

        if (friends == null || position + 1 >= friends.size()) {
            return "";
        }
        FriendListEntryItem ei = friends.get(position - 1);
        return ei.userId + "," + ei.socType + "," + ei.name;
    }

    static class ViewHolder1 {
        public ImageView image = null;
        public TextView title = null;
        public TextView subtitle = null;
    }

    static class ViewHolder2 {
        public ImageView image;
        public TextView title;
        public TypefacedButton button;
    }

    @Override
    public int getItemViewType(int pos) {
        if (pos 

滚动列表时出现错误.但我不明白为什么.我花了很多时间来解决这个问题,但无济于事



1> stkent..:

更换

@Override
public int getItemViewType(int pos) {
    if (pos 

通过

@Override
public int getItemViewType(int pos) {
    if (pos 

从方法的适配器文档getItemViewType(我的重点):

返回

表示View类型的整数.如果可以在getView(int,View,ViewGroup)中将一个视图转换为另一个视图,则两个视图应共享相同的类型.注意:整数必须在0到getViewTypeCount() - 1的范围内.也可以返回IGNORE_ITEM_VIEW_TYPE.

此时,您将返回视图类型的值1和2.您需要返回值0和1,以满足粗体条件.


推荐阅读
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 这个是listview的item布局,当在list中滚动时,每个item的高度会随机变化,导致显示混乱,多滚动几次高度又显示正常了,怎么回事呢?<?xmlversion1.0 ... [详细]
  • 一;点击事件。1;打开关闭蓝牙;2;扫描附近蓝牙的点击事件。二;关于蓝牙设备listView展示1;listView适配器2;通过layout找到实例化ListView对 ... [详细]
  • [java]viewplaincopyprint?ListViewlistViewgetListView(); ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • Flutter中计算文本尺寸的方法
    在Flutter开发中,有时需要计算文本的宽度和高度。本文介绍了一种利用TextPainter类实现这一功能的方法。 ... [详细]
  • 如果程序的窗口仅仅需要显示一个列表,则可以直接让Activity集成ListActivity来实现,ListActivity的子类无须调用setContentView方法来显示某个 ... [详细]
  • 添加layout_weight后,ListView仍未对齐 - ListView is not aligned even after added layout_weight
    Hereistheoutputofmycode.IcannotgetallviewsalignedineachListViewitem.Ialreadyused ... [详细]
  • 现在做了一个ListView,里面的值是用cursor提取数据库的,现在想点击listview以后页面进行跳转,并且在新的activity里显示被点击的listview的数据,我的listview有很 ... [详细]
  • 我做的那个页面是Android的图文混排,效果如下:我把ScrollView将最外层的LinearLayout包裹之后页面就运行不出来了,而且ListView的数据只能显示一行。。。。查 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • 深入解析Java虚拟机的内存分区与管理机制
    Java虚拟机的内存分区与管理机制复杂且精细。其中,某些内存区域在虚拟机启动时即创建并持续存在,而另一些则随用户线程的生命周期动态创建和销毁。例如,每个线程都拥有一个独立的程序计数器,确保线程切换后能够准确恢复到之前的执行位置。这种设计不仅提高了多线程环境下的执行效率,还增强了系统的稳定性和可靠性。 ... [详细]
  • ListView的显示和缓存机制总结来讲:需要才显示,显示完就被回收到缓冲池中。BaseAdapter构造方法要传一个context,要不要传list?不一定?传了好像也没用pub ... [详细]
author-avatar
忘不了那个你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有