Android中BaseAdapter使用基础点

归志宁无五亩园,读书本意在元元。这篇文章主要讲述Android中BaseAdapter使用基础点相关的知识,希望能为你提供帮助。

android中要填充一些控件(如ListView)经常须要用到Adapter来实现,经常使用的有ArrayAdapter,SimpleAdapter, CursorAdapter,BaseAdapter,前几个都是继承自BaseAdapter的。
我平时经常使用的就是ArrayAdapter,再就是 BaseAdapter了,SimpleAdapter本身事实上也不算简单。所以能用SimpleAdapter的时候我一般都用了BaseAdapter。
至于CuesorAdapter我就差点儿没用过。今天事实上是有点忘了BaseAdapter怎么用了,在这记一下,以备后用, 也就主要是讲须要注意的东西。

1.BaseAdapter一般来说都是要重写构造方法的。
事实上BaseAdapter总体而言还是比較好使用的,主要就实现四个抽象方法。可是当时突然想不起来怎么把数据传递过去了,自然就想到了构造方法。看了曾经的代码,知道了。所以这里就有个结论:要用BaseAdapter就要重写构造方法。
2 .BaseAdapter中要有Context对像。
由于BaseAdapter要填充自己写的View。所以就要用到一个LayoutInflater对象,而要获得LayoutInflater对象就须要用到LayoutInflater.from(context); 方法。所以由此看来。又要记住一个小结论:要使用BaseAdapter就要定义一个Context。
要用到这个Context对象,还是要传递了,那么进而再得到一个结论:要使用BaseAdapter要在构造方法中至少传入一个Context对象參数。

【Android中BaseAdapter使用基础点】3 .要使用ViewHolder类,里面包括自己定义布局里的控件。

我们知道ListView之类的须要优化。不然的话一直填充比較占内存,极端的时候可能发生内存不足的情况导致程序FC,所以就自定一个内部类ViewHolder来进行优化。所以我们再次得到一个结论:要使用BaseAdapter就自己定义一个ViewHolder类。用到的时候就实例化一个ViewHolder对象。
当convertView== null时。通过convertView = inflater.inflate(R.layout.list_item, null); 初始化布局,然后初始化布局中的控件,之后调用
convertView.setTag(viewHolder); else{ viewHolder= (ViewHolder) convertView.getTag(); }

就是又一次获得组件。而不是又一次初始化。




    推荐阅读