增强版的RecycleViewAdapter,能够直接使用
在Android的项目中。须要大量的列表组件来显示数据。在之前的项目中一直使用的是ListView 组件,可是在最新的V7包中出现了能后替代ListView的组件RecycleView。
所以在新的项目中使用了大量的RecycleView来替代ListView。
在使用RecycleView的时候。发现做了大量的反复操作。所以对RecycleView进行了简单的封装。方便在项目中视使用。
封装的操作主要是针对RecycleViewAdapter的封装,详细的功能例如以下:
- 能够加入多个头视图、尾视图
- 能够设置默认的切割线
- 能够隐藏第一个、第二个头视图的切割线
- 简化适配器中的方法
- 为ItemView设置点击事件
ArrayList<String> 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<String> {
protected WGAdapter(Context context, List<String> 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);
}
}
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- ################################################ -->
<!-- 切割线的样式有这里定义。 一般都是Drawable -->
<item name="android:listDivider">@drawable/divider</item>
</style>
增强版的RecycleViewAdapter,能够直接使用的更多相关文章
- 将表里的数据批量生成INSERT语句的存储过程 增强版
将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...
- 最新GHOST XP系统下载旗舰增强版 V2016年
系统来自:系统妈:http://www.xitongma.com 深度技术GHOST xp系统旗舰增强版 V2016年3月 系统概述 深度技术ghost xp系统旗舰增强版集合微软JAVA虚拟机IE插 ...
- 最新深度技术GHOST XP系统旗舰增强版 V2016年
来自系统妈:http://www.xitongma.com 深度技术GHOST xp系统旗舰增强版 V2016年 系统概述 深度技术ghost xp系统旗舰增强版集合微软JAVA虚拟机IE插件,增强浏 ...
- WinNTSetup v3.8.7 正式版绿色增强版
最强系统安装利器:WinNTSetup 现已更新至 v3.8.7 正式版!这次更新修复调整了诸多问题,新版非常好用接近完美!WinNTSetup 现在已经自带BCDBoot 选项,并且完全支持Wind ...
- 将表里的数据批量生成INSERT语句的存储过程 继续增强版
文章继续 桦仔兄的文章 将表里的数据批量生成INSERT语句的存储过程 增强版 继续增强... 本来打算将该内容回复于桦仔兄的文章的下面的,但是不知为何博客园就是不让提交!.... 所以在这里贴出来吧 ...
- CentOS6.5安装Tab增强版:bash-completion
CentOS6.5安装Tab增强版:bash-completion,可补全命令参数: 因为CentOS官方源并不带有bash-completion的包,所以,为了可用yum安装,增加epel的源, 首 ...
- 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版
<zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...
- zw版_zw中文增强版Halcon官方Delphi例程
[<zw版·delphi与halcon系列原创教程>zw版_zw中文增强版Halcon官方Delphi例程 源码下载:http://files.cnblogs.com/files/ziwa ...
- office 2016 专业增强版 和 visio 2016 专业版 下载安装(附带激活工
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://babyshen.blog.51cto.com/8405584/1697910 o ...
随机推荐
- ubuntu14.04安装搜狗拼音以及Google-chrome
安装搜狗拼音 1.进入https://pinyin.sogou.com/linux/选择合适版本下载: 2.直接打开deb包进行安装: 3.安装完成后,打开系统设置中语言支持选项,在键盘输入方式系统中 ...
- ajax动态刷新下拉框
动态post,避免直接给页面传输大量数据 /** * ajax通过商品刷新供应商 * by_kangyx * @throws IOException */ @RequestMapping(params ...
- Hive 启动报错
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected at jl ...
- Java设计模式学习三-----工厂模式
工厂模式 工厂模式(Factory Pattern)是Java中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,创建对象时不会对客户端暴露创建逻 ...
- js--进阶知识点
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- IOS 自动布局-UIStackPanel和UIGridPanel(四)
为什么说scrollview的自动化布局是难点? 对scrollview做自动化布局,无非就是想对scrollview里面的subviews来做自动化布局.但是scrollview里面的subview ...
- Course Machine Learning Note
Machine Learning Note Introduction Introduction What is Machine Learning? Two definitions of Machine ...
- Leetcode 365.水壶问题
水壶问题 有两个容量分别为 x升和 y升的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好 z升的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水. 你允许: 装满 ...
- 【Android】SharedPreference存储数据
SharedPreference存储数据 使用SharedPreference保存数据 putString(key,value) 使用SharedPreference读取数据 getString( ...
- 【Android】监听viewpager子页面里面的Button按钮
最近做项目遇到Viewpager+Fragment滑动页面,要监听子页面中的按钮,在网上查了些解决办法: 办法一: 这种方法是在适配器初始化中进行监听,有人亲测通过,但是我继承FragmentPage ...