关于android端的listview的一个发现

来源:互联网 发布:淘宝好做吗现在 编辑:程序博客网 时间:2024/05/21 17:47

要想实现listview,要做一个BaseAdapter的继承当做他的数据出入的处理,这个都知道。

然后呢,主要继承4个函数:

public int getCount()

public Object getItem(int position)

public long getItemId(int position)

public View getView(int position, View convertView, ViewGroup parent)


关于这4个函数的解释,

百度出来的结果是  getcount,顾名思义,就是返回所有需要读取你希望listview显示的所有数,

getItem是在点击后才会调用该函数,以实现返回值给listview 的itemclick 的回调函数

getItemId和   getitem差不多,返回你希望返回的 id值

getView的话,简单的来说就是显示时,用户在滑动时,调用该函数不断的刷新界面,public View getView(int position, View convertView, ViewGroup parent),

其实他的convertView这个参数,大有玄机。android官方是这么解释的,在调用getview时,应该先检测一个convertView这个参数,如果为null,则需要重新用inflate去填充他,如果有值,那就在他的值的基础上改改。但是有一个问题,他的值是哪来的?当时由于急着赶项目,没有去研究他,后来在做的时候发现,界面滑下来后显示的item,出来了不该显示的值,查了很久没查出来。后来看到这个值,研究了一下,我靠,这玩意就是你滑下来后,就是从上面滑出来的那个item,就是说,他就是一屏的convertView在不断的循环,值也给你完整的继承下来了,就是相当于循环的栈表,从头上顶出来,完完整整 的并到底下,然后你需要继承getView这个函数去改变他的值,使他在并的时候能变换值,看上去像是单向栈一样。



0 0
原创粉丝点击