博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
增强版的RecycleViewAdapter,能够直接使用
阅读量:5061 次
发布时间:2019-06-12

本文共 2452 字,大约阅读时间需要 8 分钟。

在Android的项目中。须要大量的列表组件来显示数据。在之前的项目中一直使用的是ListView 组件,可是在最新的V7包中出现了能后替代ListView的组件RecycleView。

所以在新的项目中使用了大量的RecycleView来替代ListView。

在使用RecycleView的时候。发现做了大量的反复操作。所以对RecycleView进行了简单的封装。方便在项目中视使用。

封装的操作主要是针对RecycleViewAdapter的封装,详细的功能例如以下:

  1. 能够加入多个头视图、尾视图
  2. 能够设置默认的切割线
  3. 能够隐藏第一个、第二个头视图的切割线
  4. 简化适配器中的方法
  5. 为ItemView设置点击事件
封装的代码已上传 GitHub,想要使用的能够下载,兴许会依据项目中的需求。不断加入新的功能。
GitHub的地址:
详细的使用方式例如以下:
ArrayList
data = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for (int i = 0; i < 100; i++) { data.add("Item" + i); } RecyclerView mainView = (RecyclerView) findViewById(R.id.mianView); WGAdapter adapter = new WGAdapter(this, data, android.R.layout.simple_list_item_1); mainView.setAdapter(adapter); ImageView headerView = new ImageView(this); headerView.setImageResource(R.mipmap.ic_launcher); adapter.addHeaderView(headerView); //加入头视图 Button footerView = new Button(this); footerView.setText("load"); adapter.addFooterView(footerView); //加入尾视图 WanItemDecoration item = new WanItemDecoration(this, WanItemDecoration.VERTICAL_LIST); //item.setIsShowSecondItemDecoration(false); //不显示第一行 切割线 item.setIsShowFirstItemDecoration(false); //不显示第二行 切割线 item.setMarginLeftDP(10); //切割线左边距 item.setMarginRightDP(10); //切割线右边距 mainView.addItemDecoration(item); //加入切割线 mainView.setLayoutManager(new LinearLayoutManager(this)); adapter.setOnItemClickListener(this); //设置点击事件 } @Override public void onItemClickListener(int posotion) { Toast.makeText(this, data.get(posotion), Toast.LENGTH_LONG).show(); } class WGAdapter extends WanAdapter
{ protected WGAdapter(Context context, List
mDatas, int itemLayoutId) { super(context, mDatas, itemLayoutId); } /** * @param holder itemHolder * @param item 每一Item显示的数据 */ @Override public void convert(WanViewHolder holder, String item) { //holder.setText(android.R.id.text1, item); //或者 TextView text = holder.getView(android.R.id.text1); text.setText(item); } }
注意:假设要定义切割线的样式,须要加入属性:

转载于:https://www.cnblogs.com/gcczhongduan/p/5267841.html

你可能感兴趣的文章
【POJ1845】Sumdiv(数论/约数和定理/等比数列二分求和)
查看>>
在WPF中使用Caliburn.Micro搭建MEF插件化开发框架
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
UWP: 掌握编译型绑定 x:Bind
查看>>
asp.net core系列 35 EF保存数据(2) -- EF系列结束
查看>>
WPF程序加入3D模型
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
C#中的IEnumerable<T>知识点
查看>>
android访问链接时候报java.net.MalformedURLException: Protocol not found
查看>>
dwz ie10一直提示数据加载中
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Windows Phone Marketplace 发布软件全攻略
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
语义web基础知识学习
查看>>
hexo个人博客添加宠物/鼠标点击效果/博客管理
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
关于WPF的2000件事 02--WPF界面是如何渲染的?
查看>>
单元测试、、、
查看>>
SVN使用教程总结
查看>>