您的位置:首页 > 移动开发 > Android开发

BaseAdapter的convertView参数是什么意思

2014-12-27 12:31 447 查看
出处:http://zhidao.baidu.com/link?url=EdLDF4pBM9vBfJcQx9ImOZALPXFGWjj2pIE9gAmYaKVcpQlAeVb4AlYqB8W0h7qa4E3IExJoTWDFSfxsaWmH75_FczBl6Ksrx0iipQcbsHS

(另附:http://blog.csdn.net/pkxiuluo01/article/details/7380974

BaseAdapter适配器里有个getView()需要重写public View getView(int position,View converView,ViewGroup parent){  //省略。。}请问这个方法的三个参数是什么意思?作用是什么?我不要简单的翻译哈,最好举个例子具体用法


这个convertView其实就是最关键的部分  原理上讲 当ListView滑动的过程中 会有item被滑出屏幕 而不再被使用 这时候Android会回收这个条目的view 这个view也就是这里的convertView

当item1被移除屏幕的时候 我们会重新new一个View给新显示的item_new 而如果使用了这个convertView 我们其实可以复用它 这样就省去了new View的大量开销

public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView != null) {
view = convertView;
//复用了回收的view 只需要直接作内容填充的修改就好了
} else {
view = new Xxx(...);
//没有供复用的view 按一般的做法新建view
}
return view;
}

我想问下可以不用这个convertView吗?例如我写程序的时候if (convertView != null)这句可以不要吗


可以不要那个判断,有的时候还必须不要那个判断,例如带CheckBox的item,如果你使用判断,在你选中某个item的CheckBox时滑动时会出现混乱,这时你就必须去掉判断对其进行重构。
在item超过屏幕时,在上面选中某个 CheckBox,滑动到下面youshi3也会出现选中的项,再滑动回原来的位置,刚选中的项可能会消失等现象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息