闲来无事,在写一个多样式Item的ListView的Demo时,遇到了一个以前没遇过的问题;

╮( ̄▽ ̄")╭

我们知道,ListView里可以有多种样式的item,

实现只需要重写:

     @Override
public int getItemViewType(int position) {
int type = Integer.parseInt(mData.get(position).get(KEY_TYPE));
switch (type) {
case TYPE_HEADER:
return TYPE_HEADER; case TYPE_CONTENT:
return TYPE_CONTENT;
}
return super.getItemViewType(position);
} @Override
public int getViewTypeCount() {
return 2;
}

然后在getView()方法中做一些item的Type判断,做不同操作即可;

一切都那么美好;

---------------------------------------------------

然而,在我写这个Demo的时候发现,并不能随意给ItemViewType定义int值;

如:

 public static final int TYPE_HEADER = 9;
public static final int TYPE_CONTENT = 1;

就会在随后的ListView使用时造成崩溃;

因为ListView会把不同的ItemViewType放进一个有序容器中,

而且这个容器的大小就是getViewTypeCount()方法返回的值,这里是2;

当复用TYPE_HEADER时,就会去取容器中的第9个元素,

然后:

java.lang.IndexOutOfBoundsException

没想到啊,这个居然是相关的;

而且Exception的printStackTrace()所显示的信息,都是sdk的类,简直难找问题源头;

---------------------------------------------------

所以,必须从0开始依次定义ItemViewType的值;

如:

 public static final int TYPE_HEADER = 0;
public static final int TYPE_CONTENT_TEXT = 1;
public static final int TYPE_CONTENT_IMAGE = 2;
public static final int TYPE_FOOTER = 3;

(ಥ _ ಥ)

Android ListView 多样式Item的一个注意点:(的更多相关文章

  1. android listview中item通过viewpager实现《IT蓝豹》

    android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项 ...

  2. Android ListView的item背景色设置以及item点击无响应等相关问题

    Android ListView的item背景色设置以及item点击无响应等相关问题 在Android开发中,listview控件是非常常用的控件,在大多数情况下,大家都会改掉listview的ite ...

  3. Android listview的item设定高度

    在item的layout文件中,用android:layout_height设置item的高度.运行,高度设置无效. 解决办法: 给item设定minHeight,即可. -------------- ...

  4. Android ListView中Item点击事件失效解决方案

    欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...

  5. Android ListView子item高度定长固定值无效问题

    在项目开发中遇到一个实际问题:ListView中,打算给每个子item设定一个具体的高度值如128dp,256dp,在子item中把根布局的高度值写死写成定长,但是不管怎么样,高度一直都没变化.开始以 ...

  6. Android ListView的item背景色设置

    1.如何改变item的背景色和按下颜色 listview默认情况下,item的背景色是黑色,在用户点击时是黄色的.如果需要修改为自定义的背景颜色,一般情况下有三种方法: 1)设置listSelecto ...

  7. [转]Android ListView的Item高亮显示的办法

    本文转自:http://www.cnblogs.com/dyllove98/archive/2013/07/31/3228601.html 在我们使用ListView的时候,经常会遇到某一项(Item ...

  8. Android ListView的item点击无响应的解决方法

    假设listitem里面包含button或者checkbox等控件,默认情况下listitem会失去焦点,导致无法响应item的事件,最经常使用的解决的方法 是在listitem的布局文件里设置des ...

  9. android 在 ListView 的 item 中插入 GridView 仿微信朋友圈图片显示。

    转载请声明出处(http://www.cnblogs.com/linguanh/) 先上张效果图: 1,思路简述 这个肯定是要重写 baseAdapter的了,这里我分了两个数据适配器,一个是自定义的 ...

随机推荐

  1. java String

    实例一.substring(int beginIndex,int endIndex) String end ="2007-12-31";System.out.println(end ...

  2. Tableau修改参考线上显示的标签

    修改Tableau中参考线上的标签显示内容,如下图所示:可根据自定义调整

  3. linux php 安装 memcache 扩展

    1. memcached依赖于libevent,需要先安装libevent. tar zxvf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-sta ...

  4. C# 模拟webform里面按钮的点击事件

    生成的html内容 <body> <form method="post" action="./Login.aspx" id="for ...

  5. Microsoft Help Viewer

    Microsoft Help Viewer 1.0 Microsoft Help Viewer 2.0 Help Library 管理器 -Microsoft Help 查看器 打开VS 2010   ...

  6. 列王的纷争,COK,675区,有去的没有?加群:159108918,盟的名字准备叫:大话西游

    首先我承认我玩物丧志了 679区,有去的没有?加群: 474574809,盟的名字叫:Moon Box 如何练最强5级号,为新区做准备?! 粮食是可以为0的,士兵不会死,这是关键之一. 关键之二是新手 ...

  7. web安全学习笔记

    论坛&资讯 http://www.metasploit.cn http://www.freebuf.com http://www.backtrack.org.cn/ http://www.ha ...

  8. Java中将一个字符串传入数组的几种方法

    String Str="abnckdjgdag"; char a[]=new char[Str.length()]; -------------------方法1 用于取出字符串的 ...

  9. GDI与GDI+ 贴图性能对比

    在做绘图相关工作,由于对显示绘制结果实时性有要求,筛选了GDI , 与GDI+ 贴图性能. 这里假设在内存中已绘制完成一张图片,现需求显示在控件上,同时,总是更新全部区域. GDI+ 实现 priva ...

  10. Android中Service和Activity之间的通信

    启动Service并传递数据进去: Android中通过Intent来启动服务会传递一个Intent过去. 可以在Intent中通过putExtra()携带数据 Intent startIntent ...