listview的position问题 listview里有不同的布局时,你就需要通过getItemViewType来决定这个view了可以看看http://blog.csdn.net/lllkey/article/details/9093107 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样写肯定不行,因为convertView等于null只有一次,后续都执行else的了,有2个办法:1、去掉convertView的判断,每次都新建,效率不会很高2、把你的内容放到一个layout里面,通过判断,设置不想显示的内容为GONE,需要显示的是VISIBLE Adapter中根据情况加载不同的item需要重写这2个方法 @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; } 然后在getView方法中 根据position加载不同的view Adapter中根据情况加载不同的item需要重写这2个方法 @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; } 可以取巧啊,2个ListView上下并排,弄2个适配器,一个显示前3,一个显示后面的,然后加载上去。 应用在屏幕锁屏后再无响应 android通过手势识别来实现左右拖动效果? webservice怎么保存语音文件? ViewGroup刷新问题 opencv的使用问题 求教与照相机有关的小程序 求高手解答页面跳转问题 android代码如何实现一键清理缓存!急求 android真机调试错误 安卓 USB通讯 在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;
}