RecyclerView通用adapter以及item点击事件的实现
2016-08-10 22:49
302 查看
今天实现内容如下:
1.实现recyclerview通用的adapter CommonAdapter
2.实现recyclerview item的点击事件
先上效果图
viewpager+fragment+viewpagerindicator实现整体框架,上图中下面的类似GridView的图片列表为要实现效果。
首先定义一个供CommonAdapter使用的ViewHolder
代码1(ViewHolder)
其中get方法先得到itemView,再通过ViewHolder构造器得到ViewHolder实例;
getView通过itemView.findViewById(子view的id)得到itemView中包括的子view;
getConvertView方法得到itemView(在get方法中将得到的itemVIew传入了ViewHolder的构造器,而构造器总将itemView的值赋给了成员变量mConvertView);
代码2 (CommonFragmentAdapter:因项目中为为Fragment使用的adapter,但实际上是通用的)
在onCreateViewHolder中通过VIewHolder的get方法得到ViewHolder实例,通过ViewHolder的getConvertView方法得到recyclerview itemView,
给itemView设置监听事件,最后返回ViewHolder实例;
在onBindViewHolder方法中调用了当前CommonFragmentAdapter中定义的抽象方法convert,并在此处得到当前itemView,并将position作为setTag
方法的实参传入,此tag值用来确定点击了哪一个item,convert方法的作用在于实例化adapter时回掉此方法,此方法的参数即为当前ViewHolder实例
和当前数据集合中的数据。
定义一个OnRecyclerView接口,接口里定义一个onItemClick方法,声明一个接口变量mOnRecyclerViewListener,在itemView的onClick方法中,如果
mOnRecyclerView变量不为空,则调用mOnRecyclerView.onItemClick,并将当前itemView和getTag得到的position值传入onItemClick方法。最后定义
一个setOnItemClickListener方法方便调用。这样就实现了CommonAdapter的封装和点击事件。
代码3 (fragment中使用)
实例化一个CommonFragmentAdapter,在回调方法convert中处理业务逻辑,给recyclerView设置布局管理器,此处为GridLayoutManager,将CommonFragmentAdapter实例设置给recyclerview,itemView点击事件通过
CommonFragmentAdapter.setOnItemCLickListener来实现。
程序员的魅力在于分享
参考了前辈鸿洋的博客
原文链接 http://blog.csdn.net/lmj623565791/article/details/51118836
1.实现recyclerview通用的adapter CommonAdapter
2.实现recyclerview item的点击事件
先上效果图
viewpager+fragment+viewpagerindicator实现整体框架,上图中下面的类似GridView的图片列表为要实现效果。
首先定义一个供CommonAdapter使用的ViewHolder
代码1(ViewHolder)
其中get方法先得到itemView,再通过ViewHolder构造器得到ViewHolder实例;
getView通过itemView.findViewById(子view的id)得到itemView中包括的子view;
getConvertView方法得到itemView(在get方法中将得到的itemVIew传入了ViewHolder的构造器,而构造器总将itemView的值赋给了成员变量mConvertView);
代码2 (CommonFragmentAdapter:因项目中为为Fragment使用的adapter,但实际上是通用的)
在onCreateViewHolder中通过VIewHolder的get方法得到ViewHolder实例,通过ViewHolder的getConvertView方法得到recyclerview itemView,
给itemView设置监听事件,最后返回ViewHolder实例;
在onBindViewHolder方法中调用了当前CommonFragmentAdapter中定义的抽象方法convert,并在此处得到当前itemView,并将position作为setTag
方法的实参传入,此tag值用来确定点击了哪一个item,convert方法的作用在于实例化adapter时回掉此方法,此方法的参数即为当前ViewHolder实例
和当前数据集合中的数据。
定义一个OnRecyclerView接口,接口里定义一个onItemClick方法,声明一个接口变量mOnRecyclerViewListener,在itemView的onClick方法中,如果
mOnRecyclerView变量不为空,则调用mOnRecyclerView.onItemClick,并将当前itemView和getTag得到的position值传入onItemClick方法。最后定义
一个setOnItemClickListener方法方便调用。这样就实现了CommonAdapter的封装和点击事件。
代码3 (fragment中使用)
实例化一个CommonFragmentAdapter,在回调方法convert中处理业务逻辑,给recyclerView设置布局管理器,此处为GridLayoutManager,将CommonFragmentAdapter实例设置给recyclerview,itemView点击事件通过
CommonFragmentAdapter.setOnItemCLickListener来实现。
程序员的魅力在于分享
参考了前辈鸿洋的博客
原文链接 http://blog.csdn.net/lmj623565791/article/details/51118836
相关文章推荐
- 利用RecycleView实现类似ListView的Item点击,长按等操作事件以及点击后每一项在添加一个列表
- 简单的实现listView中item多个控件以及点击事件
- 简单的实现listView中item多个控件以及点击事件
- 简单的实现listView中item多个控件以及点击事件
- Android中ListView的item实现点击任意位置都触发事件
- android 往dialog中加入listview,并实现listview中item的点击事件
- android ListView点击item删除事件的实现
- 实现RecyclerView的item点击事件的内部监听器
- 关于recyclerview的横向布局的宽度以及item的点击事件的添加
- CCMenu超过CCScrollView边框还能点击处理,以及拖动CCMenuItem不响应点击事件
- 安卓实现spinner下拉列表以及实现它点击事件
- iframe自适应内层页面高度,可响应页面中折叠点击事件,以及实现跨域的问题解决方案
- RecyclerView 初次体验,实现增加删除条目及item长按和点击事件
- RecyclerView实现Item点击事件方法二
- Cocos2d-X 3.0 ControlButton的加入以及点击事件的实现
- Android实现RecyclerView自定义列表、点击事件以及下拉刷新
- android 往dialog中加入listview,并实现listview中item的点击事件
- ListView中item点击事件、item保持选中状态以及其他细节
- RecyclerView实现上拉刷新,下拉加载,item点击事件
- 百度地图开发,实现鼠标悬浮事件以及点击事件