Android 非常好用的万能BaseAdapter
来源:互联网 发布:vb正则表达式在线测试 编辑:程序博客网 时间:2024/05/19 23:11
在打代码过程中,越来越发现封装的重要性。于是,封装了一个BaseAdapter的基类,省去了每次重写BaseAdapter要做的凡庸,冗余的代码。
这个类可以省去自己写Viewholder,也可以在不确定数据源,item时,继承我写的这个基类即可轻松为适配器类型的控件写出适配器,下面就是示例代码:
public abstract class AllPowerAdapter<T> extends BaseAdapter {private List<T> data; private LayoutInflater inflater; private int layoutId; public AllPowerAdapter(Context context,List<T> data, int layoutId) {inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); this.layoutId = layoutId; if (data==null){this.data=new ArrayList<>();}else{this.data = data;} }public void updateRes(List<T> data){if (data!=null&&data.size()>0){this.data.clear(); this.data.addAll(data);notifyDataSetChanged();} }public void addRes(List<T> data){if (data!=null&&data.size()>0){this.data.addAll(data);notifyDataSetChanged();} }@Overridepublic int getCount() {return data!=null?data.size():0;}@Overridepublic T getItem(int position) {return data.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh=null; if (convertView==null){ convertView=inflater.inflate(layoutId,parent,false);vh=new ViewHolder(convertView);convertView.setTag(vh);}else{ vh= (ViewHolder) convertView.getTag();} bindData(vh,getItem(position)); return convertView;}public abstract void bindData(ViewHolder vh,T t); protected static class ViewHolder{private View layout; private Map<Integer,View> cacheView=new HashMap<>(); public ViewHolder(View convertView) {layout = convertView;}public View getView(int resId){ View view=null; if (cacheView.containsKey(resId)){ view=cacheView.get(resId);}else{ view=layout`findViewById(resId);cacheView.put(resId,view);}return view;} }}
1 0
- Android 非常好用的万能BaseAdapter
- Android中万能的BaseAdapter的使用 .
- Android中万能的BaseAdapter的使用
- Android中万能的BaseAdapter的使用
- Android中万能的BaseAdapter的使用
- Android中万能的BaseAdapter的使用
- Android中万能的BaseAdapter的使用
- Android中万能的BaseAdapter的使用
- Android中万能的BaseAdapter的使用
- 万能的适配器 BaseAdapter
- 万能RecyclerView 的BaseAdapter
- 打造Android中万能BaseAdapter
- Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- 13.Android中万能的BaseAdapter的使用
- Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android 中万能的 BaseAdapter(Spinner,ListView,GridView) 的使用!
- Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android 中万能的 BaseAdapter(Spinner,ListView,GridView) 的使用!
- RSA加密和解密实现
- java泛型(一)、泛型的基本介绍和使用
- Android Studio多渠道打包
- 安卓 天气预报
- 不规则图形 尖角转圆角
- Android 非常好用的万能BaseAdapter
- hdoj 5665 Lucky 【水】
- JavaScript 对象(1)
- Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
- adb 查看wifi命令
- 图片突出显示(jquery)
- 卡尔曼滤波器跟踪
- python:集合set的操作
- ListView 搭配 CheckBox 全选超过一屏幕数据后出错