归志宁无五亩园,读书本意在元元。这篇文章主要讲述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();
}
就是又一次获得组件。而不是又一次初始化。
推荐阅读
- Android 组件之Service解析
- Android--XML页面的编写
- Android(使用ZXing生成二维码(支持加入Logo图案))
- Android--Intent组件带参传递与返回
- Android Studio代码调试大全
- android利用apkplug框架实现主应用与插件通讯(传递随意对象)实现UI替换
- appium在MAC上环境搭建
- 网狐荣耀版Eclipse加载时出现Unable to resolve target android-19的解决办法
- Android6.0权限管理以及使用权限该注意的地方