android BaseAdapter 自定义适配器 BaseAdapter基类抽取 一

适配器基类

package com.zcycjy.mobile.adapter;import java.util.List;import android.content.Context;import android.util.SparseArray;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;public abstract class UAdapter extends BaseAdapter {private Context context;private List<?> list;public UAdapter(Context context, List<?> list) {this.context = context;this.list = list;}@Overridepublic int getCount() {return list == null ? 0 : list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}/** * 布局资源 * @return */protected abstract int setLayoutRes();/** * 重写getView方法 * @param position * @param convertView * @param parent * @param holder * @return */protected abstract View getView(int position, View convertView,ViewGroup parent, ViewHolder holder);/** * 每个控件的缓存 */protected class ViewHolder {public SparseArray<View> view = new SparseArray<View>();/** * 指定resId和类型即可获取到相应的view *  * @param convertView * @param resId * @param <T> * @return */public <T extends View> T obtainView(View convertView, int resId) {View v = view.get(resId);if (null == v) {v = convertView.findViewById(resId);view.put(resId, v);}return (T) v;}}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder;if (null == convertView) {holder = new ViewHolder();convertView = LayoutInflater.from(context).inflate(setLayoutRes(),null);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}return getView(position, convertView, parent, holder);}}

继承积累UAdapter

package com.zcycjy.mobile.adapter;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import com.zcycjy.mobile.R;import com.zcycjy.mobile.entity.Address;public class AddressAdapter extends UAdapter {List<Address> list = null;// Address 实体累public AddressAdapter(Context context, List<Address> list) {super(context, list);}public void refreshDatas(List<Address> list) {if (null != list) {this.list = list;notifyDataSetChanged();} else {this.list = new ArrayList<Address>();}}@Overrideprotected int setLayoutRes() {return R.layout.item_address;}@Overrideprotected View getView(int position, View convertView, ViewGroup parent,ViewHolder holder) {TextView tv = holder.obtainView(convertView, R.id.item_tv_name);Address ad = (Address) getItem(position);tv.setText(ad.getName());return convertView;}}
调用相信大家都会用,是不是感觉方便简单了点

更多相关文章

  1. Android(安卓)--- BaseAdapter
  2. 系出名门Android(8) - 控件(View)之TextSwitcher, Gallery, Imag
  3. Android(安卓)分组列表适配器 MyExpandableAdapter
  4. Android综合小练习Fragment,解析,Handler,ViewPager
  5. Android(安卓)Spinner
  6. Android适配器之------BaseAdapter(例子)
  7. Android(Java):滑动删除实现——重写onTouch
  8. Android学习--Android带删除按钮的ListView
  9. Android动态创建ListView视图,动态增加和删除Item.

随机推荐

  1. mall整合Elasticsearch实现商品搜索
  2. mall整合SpringBoot+MyBatis搭建基本骨架
  3. mall整合Mongodb实现文档操作
  4. mall整合Swagger-UI实现在线API文档
  5. mall整合Redis实现缓存功能
  6. mall整合RabbitMQ实现延迟消息
  7. mall整合SpringSecurity和JWT实现认证和
  8. mall整合OSS实现文件上传
  9. mall在Windows环境下的部署
  10. Navicat实用功能:数据备份与结构同步