ListView,GridView万能适配器
来源:互联网 发布:飞狐 指标数据输出 编辑:程序博客网 时间:2024/05/17 07:46
写listview的适配配器非常繁琐,并且容易出错,所以在博客上面看到了一篇非常好用的适配器
详情连接:https://github.com/hongyangAndroid/baseAdapter
http://blog.csdn.net/lmj623565791/article/details/38902805
1. 导入依赖库
compile 'com.zhy:base-adapter:3.0.3'
其实到这里基本上就完成一半了,因为它的适配方法被封装否非常好用又简单,布局和原来的没有一点变化,你可以在同一个类中定义适配:
adapter = new CommonAdapter<String>(getApplicationContext(), R.layout.item, list) { @Override protected void convert(ViewHolder viewHolder, String item, final int position) { viewHolder.setText(R.id.cont,item); viewHolder.getView(R.id.cont).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"点击了"+position,Toast.LENGTH_LONG).show(); } }); } };
- CommonAdapter这里的泛型是你传入的类型也可以是对象
- R.layout.item 就是我们要适配的子布局
- list 则是我们装数据的容器
- viewHolder.setText(R.id.cont,item); R.id.cont:显示内容的控件 item 显示的具体内容
- 控件的监听事件
viewHolder.getView(R.id.cont).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"点击了"+position,Toast.LENGTH_LONG).show(); } });
可见是通过 viewHolder获取listview里面的子布局并设置监听
自定义类继承适配器
public class MyAdapter extends CommonAdapter<User> { Context m; public MyAdapter(Context context, int layoutId, List<User> datas) { super(context, layoutId, datas); this.m=context; } @Override protected void convert(ViewHolder viewHolder, User item, int position) { TextView text= viewHolder.getView(R.id.cont); TextView texts= viewHolder.getView(R.id.age); texts.setText(item.getAge()); text.setText(item.getName()); }}
可见基本类似定义泛型后先重写构造方法如果需要传递布局只需要加 this.m=context;
这个只是简单的适配而事实上这个万能的适配器功能远远不止于此像多条目展示,以及对RecycleView都有自己的适配方式并且类似
多条目展示
MultiItemTypeAdapter<User> adapter = new MultiItemTypeAdapter<>(this, list); adapter.addItemViewDelegate(new One()); adapter.addItemViewDelegate(new Two()); listView.setAdapter(adapter);
public class One implements ItemViewDelegate<User>{ @Override public int getItemViewLayoutId() { return R.layout.item_one; } @Override public boolean isForViewType(User item, int position) { return true;//这里返回的是要加载哪一个布局 } @Override public void convert(ViewHolder holder, User user, int position) { holder.setText(R.id.one_text,user.getAge()); } }
RecyclerView的依赖库(方法类似)
compile 'com.zhy:base-rvadapter:3.0.3'
阅读全文
1 0
- ListView、GridView万能适配器
- ListView GridView 万能适配器
- ListView,GridView万能适配器
- 万能适配器 listview gridview RecyclerView
- 打造万能的android ListView GridView 适配器
- Android 打造万能的ListView GridView 适配器
- Adapter---打造万能的ListView GridView 适配器
- Adapter---打造万能的ListView GridView 适配器
- CommonAdapter-万能的ListView.GridView的适配器
- android 打造万能的ListView GridView 适配器
- Android 打造万能的ListView GridView 适配器
- 打造万能的ListView GridView 适配器
- Android打造ListView和GridView万能适配器
- 打造万能的ListView GridView 适配器
- listview gridview 的万能适配器 baseAdapter
- 打造万能的ListView GridView 适配器
- ListView/GridView适用的万能适配器
- ListView和GridView的万能适配器
- 本地Navicat连不上Linux虚拟机MySQL数据库问题
- 自主编程实现数组队列和链式队列
- RACScheduler
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
- 【图解】Eclipse下JRebel6.2.0热部署插件安装、破解及配置【转】
- ListView,GridView万能适配器
- 【CQOI2015】网络吞吐量
- Python爬虫002浏览器的模拟Header属性
- 利用Defraggler整理文件夹的方法
- redis配置详解
- tensorflow tf.group
- POJ 4.6 702 Crossing River
- 如何使用Gilisoft File Lock Pro加密文件和文件夹
- SVN强制限制提交时的注释长度