RecyclerView的使用(三)
上个小结中介绍了如何使用RecyclerView显示不同的数据展示样式(瀑布流也是可以显示的,从GridView改就好)
本节来为RecyclerView的item添加监听事件。
RecyclerView本身没有为item设置监听事件,想要使用onclick或者onLongclick事件需要自己定义(这是最坑爹的),然后暴露方法供调用
实现RecyclerView 的item 的监听事件需要以下几步:
(鸿洋大神表示实现该方法有很多)我这里就使用大神在讲解中所用的方法:
1、在Adapter方法中添加监听接口onItemClickListener和onItemLongClickListener;
2、暴露接口的set方法;
3、在onBindviewHolder方法中编写onItemClickListener和onItemLongClickListener的监听
4、调用该方法
实现效果:
点击

长按

在Adapter方法中添加监听接口onItemClickListener和onItemLongClickListener
public interface OnItemClieckLinster{
void onItemClickListener(View view , int pos);
void onItemLongClickListener(View view , int pos);
}
暴露方法
private OnItemClieckLinster onItemClieckLinster;
public void setOnItemClieckLinster(OnItemClieckLinster listener){ this.onItemClieckLinster = listener;
}
实现监听 修改onBindViewHolder方法
//绑定ViewHolder
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
//为textview 赋值
holder.tv.setText(mDatas.get(position)); if(onItemClieckLinster != null){ //onitemclicklistener
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onItemClieckLinster.onItemClickListener(holder.itemView , position);
}
}); //onitemlongclicklistener
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) { onItemClieckLinster.onItemLongClickListener(holder.itemView , position);
return false;
}
});
}
}
调用监听
myAdapter.setOnItemClieckLinster(new MyAdapter.OnItemClieckLinster() {
@Override
public void onItemClickListener(View view, int pos) {
Toast.makeText(MainActivity.this, "click" + pos , Toast.LENGTH_SHORT).show();
}
@Override
public void onItemLongClickListener(View view, int pos) {
Toast.makeText(MainActivity.this, "long click" + pos , Toast.LENGTH_SHORT).show();
}
});
做完上面的操作就能实现图片上的效果啦~
不过有没有发现item没有点击动画?这怎么行呢!下节我们九尾item添加点击动画吧!
RecyclerView的使用(三)的更多相关文章
- android studio中使用recyclerview小白篇(三)
继续接着昨天的来,昨天终于弄好了一个例子,但是那个没有点击事件, 需要自己添加,参照别人的例子,弄了个比较简单的,主要是改动myRecycleradatper.java中的部分. 增加如下的接口: / ...
- Android之RecyclerView简单使用(三)
使用过ListView滴小伙伴都知道.ListView有这样一个属性android:divider,用来设置每一个item之间切割线滴属性.问题来了,那么RecyclerView这个控件有没有这个属性 ...
- 【FastDev4Android框架开发】RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一)
转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/49992269 本文出自:[江清清的博客] (一).前言: [好消息] ...
- RecyclerView 的介绍以及多布局的实例
RecyclerView 的使用以及多布局的实例 RecyclerView 是在Android5.0之后推出的,是一个比ListView更加灵活更加高效的适配器类型控件.但是RecyclerView不 ...
- Android笔记——RecyclerView替代ListView
ListView是常用列表控件,但设置Adapter时自定义代码较为复杂,因此Android3.0后,增加RecyclerView替代ListView RecyclerView没有提供OnItemCl ...
- Android 高级UI设计笔记07:RecyclerView 的详解
1. 使用RecyclerView 在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常 ...
- Android RecyclerView完全解析
RecyclerView完全解析 (一) 前言 话说RecyclerView已经面市很久,也在很多应用中得到广泛的使用,在整个开发者圈子里面也拥有很不错的口碑,那说明RecyclerView拥有比Li ...
- 为RecyclerView打造通用Adapter
##RecycleView简单介绍 RecyclerView控件和ListView的原理有非常多相似的地方,都是维护少量的View来进行显示大量的数据.只是RecyclerView控件比ListVie ...
- Android开发——RecyclerView特性以及基本使用方法(一)
)关于点击事件,没有像ListView那样现成的API,但是自己封装起来也不难,而且我们使用ListView时,如果item中有可点击组件,那么点击事件的冲突也是一个问题,而在RecyclerView ...
- Android RecyclerView嵌套RecyclerView
原理 RecyclerView嵌套RecyclerView的条目,项目中可能会经常有这样的需求,但是我们将子条目设置为RecyclerView之后,却显示不出来.自己试了很久,终于找到了原因:必须先设 ...
随机推荐
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(三)显示地图坐标系模块
config.xml文件的配置如下: <widget left="3" bottom="3" config="widgets/Coordinat ...
- iOS开发-UI 从入门到精通(五)
近日在做项目的时候,为了快捷适配屏幕采用了Storyboard,添加约束以后运行后发现一个问题(下面将以普通案例展示该问题);在4.7 甚至更大的屏幕下是没有问题的,如下图(4.7屏幕): 但是放到更 ...
- rails程序文件名命名规范
1 一般文件名是用小写单词加下划线分割,但类的名字用骆驼法.例如 sessions_controller.rb中定义SessionsController. 2 helpers内的文件为辅助类,定义了许 ...
- MySQL修改root账号密码
MySQL数据库中如何修改root用户的密码呢?下面总结了修改root用户密码的一些方法 1: 使用set password语句修改 mysql> select user(); +----- ...
- ORA-14450: attempt to access a transactional temp table already in use
在ORACLE数据中修改会话级临时表时,有可能会遇到ORA-14550错误,那么为什么会话级全局临时表会报ORA-14450错误呢,如下所示,我们先从一个小小案例入手: 案例1: SQL> CR ...
- SQL Challenge ——快速找到1-100之间缺失的数
有个经典的题目:1-100之间的数字(不重复)存放在表里,共95行一列,但是里面缺了5个数字,怎么用SQL最快找出那五个数字. 我们先来看看Oracle数据库如何实现,如下所示,我们先准备测试环境和数 ...
- Content-Type 之 application/json 与 text/javascript
我们一般在服务端返回 json 格式数据给浏览器端时,会使用下面的代码: response.setContentType("text/javascript;charset=UTF-8&quo ...
- protobuf学习(1)-ubuntu14.04下protobuf2.6安装
1 下载protobuf https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz 2 进入 ...
- iteye上总结的编程精华资源
原文:http://www.iteye.com/magazines/130 博客是记录学习历程.分享经验的最佳平台,多年以来,各路技术大牛在ITeye网站上产生了大量优质的技术文章,并将系列文章集结成 ...
- android布局居中
添加android:gravity="center" 或者android:layout_gravity="center"属性.android:gravity用于 ...