继承BaseAdapter自定义ListView

参考的这篇文章:http://android.amberfog.com/?p=296

 

最关键的点就在于:Android ListView只会创建并保持(在内存中)界面上会显示的items,当发生滚动的时候,调用Adapter的getView方法来获得新的view。这就是为什么getView方法中的convertView参数有的时候是NULL,有的时候不是NULL的原因。为NULL的时候表示该item还没创建过;如果一个界面最多能显示9个item,那么顶多也就创建9个item了,当某些item消失新的item要出现的时候,调用getView方法,此时convertView就是要消失掉的item,所以在getView方法中只需要对这个convertView做一些修改就OK了。归根结底,这样的做法是为了节省内存。

 

 

这个例子中ListView中每个item是由2个TextView和2个ImageButton构成的。没有重载ListView的onItemClickListener,点击按钮才有效。View有个很有用的方法setTag,可以用来存放自定义的对象。2个ImageButton就是通过访问parent view的存放在setTag中的自定义类来知道是哪一行的按钮被点击了。

你可能感兴趣的:(BaseAdapter)