listview里有不同的布局时,你就需要通过getItemViewType来决定这个view了
可以看看http://blog.csdn.net/lllkey/article/details/9093107
可以看看http://blog.csdn.net/lllkey/article/details/9093107
解决方案 »
- android settings ballery中的电量蓝线 断断续续的是什么原因
- 菜鸟求助!onClick(DialogInterface dialog, int which){}和onClick(View v){}不同
- 求 尼彩S3root 提取权限工具!
- Android音频系统ALSA中的asound.conf文件中解析扬声器音量的位置?
- [急]关于android模拟器和DDMS进行交互的问题
- android MediaPlayer 播放视频 调用stop()方法后 再调用getCurrentPosition()方法返回值不为0
- 请问如何让EditText控件在用户点击其它控件的时候收到通知?谢谢
- ZTE MF626 3G上网卡的脚本
- Activity的onCreate和onStart哪个开销大?
- 求助>_<!关于Handler更新数据的问题
- 在Android中如何从互联网上获取天气预报数据
- 求大牛帮解决困难。。。。
1、去掉convertView的判断,每次都新建,效率不会很高
2、把你的内容放到一个layout里面,通过判断,设置不想显示的内容为GONE,需要显示的是VISIBLE
@Override
public int getItemViewType(int position) {
// 区别两种view的类型,标注两个不同的变量来分别表示各自的类型
History history = (History) listItems.get(position);
if (history.getType() == AreaPatrolConstant.ViewType.TYPE_ERROR) {
return AreaPatrolConstant.ViewType.LOAD_ERROR_VIEW;
} else {
return AreaPatrolConstant.ViewType.LOAD_NORMAL_VIEW;
}
} @Override
public int getViewTypeCount() {
// 这个方法默认返回1,如果希望listview的item都是一样的就返回1,我们这里有两种风格,返回2
return TYPE;
}
@Override
public int getItemViewType(int position) {
// 区别两种view的类型,标注两个不同的变量来分别表示各自的类型
History history = (History) listItems.get(position);
if (history.getType() == AreaPatrolConstant.ViewType.TYPE_ERROR) {
return AreaPatrolConstant.ViewType.LOAD_ERROR_VIEW;
} else {
return AreaPatrolConstant.ViewType.LOAD_NORMAL_VIEW;
}
} @Override
public int getViewTypeCount() {
// 这个方法默认返回1,如果希望listview的item都是一样的就返回1,我们这里有两种风格,返回2
return TYPE;
}