打造CommonAdapter
来源:互联网 发布:发票在线制作软件 编辑:程序博客网 时间:2024/05/18 00:33
1.创建CommonAdapter类:
public abstract class CommonAdapter02<T> extends BaseAdapter { protected Context mContext; protected List<T> datas; protected LayoutInflater mInflater; public CommonAdapter02(Context context, List<T> datas) { this.datas = datas; mContext = context; mInflater = LayoutInflater.from(context); this.datas = datas; } @Override public int getCount() { return datas.size(); } @Override public T getItem(int position) { return datas.get(position); } @Override public long getItemId(int position) { return position; } /* * 优化方法二 * */ @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = ViewHolder.get(mContext, convertView, parent,R.layout.item_simple_tv,position); convert(holder,getItem(position)); return holder.getConvertView(); } public abstract void convert(ViewHolder holder,T t);}
2.ViewHolder类
public class ViewHolder { private SparseArray<View> mViews; private int mPosition; private View mConvertView; public View getConvertView() { return mConvertView; } /** * 通过viewId获取控件 * @param viewId * @param <T> * @return */ public <T extends View> T getView(int viewId){ View view = mViews.get(viewId); if (view == null) { view = mConvertView.findViewById(viewId); mViews.put(viewId,view); } return (T) view; } public ViewHolder(Context context, ViewGroup parent, int layoutId, int position) { this.mPosition = position; this.mViews = new SparseArray<>(); mConvertView = LayoutInflater.from(context).inflate(layoutId,parent,false); mConvertView.setTag(this); } public static ViewHolder get(Context context, View convertView , ViewGroup parent, int layoutId, int position) { if (convertView == null) { return new ViewHolder(context,parent,layoutId,position); }else { ViewHolder holder = (ViewHolder) convertView.getTag(); // 解决试图复用问题 holder.mPosition = position; return holder; } }}
3.自定义MyAdapter适配器继承CommonAdapter
public class MyAdapter03 extends CommonAdapter02<String> { public MyAdapter03(Context context, List<String> datas) { super(context, datas); } @Override public void convert(ViewHolder holder, String o) { TextView textView = holder.getView(R.id.id_recyclerView); textView.setText(o); }}
0 0
- 打造CommonAdapter
- 打造 Recyclerview 的万能 Adapter CommonAdapter
- CommonAdapter
- commonAdapter
- 为RecyclerView打造通用CommonAdapter 让RecyclerView更加好用
- SmartRefreshLayout+CommonAdapter打造上拉加载下拉刷新界面
- 打造Listview的万能适配CommonAdapter(方便以后查找)
- Java泛型应用之打造Android中ListView和GridView万能适配器【CommonAdapter】--超简洁写法
- 万能适配器 CommonAdapter
- ListView的CommonAdapter
- Xamarin.Android CommonAdapter+ViewHolder
- ListView万能适配器CommonAdapter
- Android通用适配器CommonAdapter
- 万能适配器CommonAdapter和ViewHolder
- 支持多布局的CommonAdapter
- 万能适配器(2) 抽取CommonAdapter
- listView的简化适配器commonAdapter
- ListView、Spinner、RecycleView的CommonAdapter
- 传统产业、传统企业为什么要进行互联网转型?
- HDU3450-Counting Sequences
- 排序算法总结(C++)
- poi导出excel例子
- ListView列表
- 打造CommonAdapter
- Java面向对象-Integer与int的区别
- List的contains()和remove()方法探讨
- Spring Boot 启动加载数据 CommandLineRunner
- Mybatis中传参包There is no getter for property named 'XXX' in 'class java.lang.String'
- OC关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- Ubuntu下设置桌面图标
- Elasticsearch 查询某些分类下相关的搜索
- Nginx的负载均衡 - 整体架构