Android Listview通用适配器BaseCommAdapter
来源:互联网 发布:画苯环的软件 编辑:程序博客网 时间:2024/05/20 20:58
public abstract class BaseCommAdapter<T> extends BaseAdapter { private List<T> mDatas; public BaseCommAdapter(List<T> datas) { mDatas = datas; } @Override public int getCount() { return mDatas == null ? 0 : mDatas.size(); } @Override public T getItem(int position) { return mDatas.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = ViewHolder .newsInstance(convertView, parent.getContext(), getLayoutId()); setUI(holder, position, parent.getContext()); return holder.getConverView(); } /** * 设置UI * * @param holder * @param position * @param context * @author 漆可 * @date 2016-6-28 下午4:07:23 */ protected abstract void setUI(ViewHolder holder, int position, Context context); /** * 获取适配器的布局id * * @return * @author 漆可 * @date 2016-6-28 下午3:12:52 */ protected abstract int getLayoutId();}
public class ViewHolder { private SparseArray<View> mViews; private View mConvertView; private ViewHolder(Context context, int layoutId) { mConvertView = View.inflate(context, layoutId, null); mConvertView.setTag(this); mViews = new SparseArray<>(); } public static ViewHolder newsInstance(View convertView, Context context, int layoutId) { if (convertView == null) { return new ViewHolder(context, layoutId); } else { return (ViewHolder) convertView.getTag(); } } /** * 获取根目录的view * @author 漆可 * @date 2016-6-28 下午3:29:21 * @return */ public View getConverView() { return mConvertView; } /** * 获取itemView * @author 漆可 * @date 2016-6-28 下午4:24:26 * @param id * @return */ @SuppressWarnings("unchecked") public <T extends View> T getItemView(int id) { View view = mViews.get(id); if (view == null) { view = mConvertView.findViewById(id); mViews.append(id, view); } return (T) view; }}//创建个自定义字段的类 Get setpublic class Adress { private String id; private String userid; private String linkman; private String tel_phone; private String province; private String city; private String area; private String address; private String is_default; private String updata_time;//使用public class MineAdapter extends BaseCommAdapter<Mine> { public MineAdapter(List<Mine> datas) { super(datas); } @Override protected void setUI(ViewHolder holder, int position, Context context) { Mine item = getItem(position); TextView tv_name = holder.getItemView(R.id.mine_text); tv_name.setText(item.name); ImageView iv_head = holder.getItemView(R.id.mine_img); iv_head.setImageResource(item.headId); } @Override protected int getLayoutId() { return R.layout.mine_item; }}
1 0
- Android Listview通用适配器BaseCommAdapter
- Android 开发技巧-Listview通用适配器BaseCommAdapter
- Android Listview通用适配器
- 【Android笔记】 通用ListView适配器
- Android 通用ListView、GridView适配器
- Android ListView的通用适配器Adapter
- ListView通用适配器
- listview、gridview通用适配器
- ListView通用适配器
- ListView、GrideView通用适配器
- ListView 通用适配器
- listview通用适配器和RecyclerView通用适配器
- Android 快速开发系列 万能通用的ListView GridView 适配器
- Android ListView通用适配器升级支持多种布局
- 通用的ListView GridView适配器
- android 通用适配器
- Android通用适配器
- Android通用适配器
- 【SSM整合】-logback日志整合
- Storm集群安装部署步骤
- java项目开发-大神案例分享:京东京豆项目06
- C++ inline
- 一行代码实现沉浸式状态栏
- Android Listview通用适配器BaseCommAdapter
- git
- Pro文件变量详细说明
- JAVA入门之如何通过 POI 读取并修改 Excel(转载)
- Python入门深度学习完整指南
- 关于linux中消息队列的使用
- oracle11g数据库如何正确导入dmp文件数据
- Leetcode-DSF-Scramble String
- VS2010 编写程序在其他系统上退出奔溃问题