上个小结中介绍了如何使用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的使用(三)的更多相关文章

  1. android studio中使用recyclerview小白篇(三)

    继续接着昨天的来,昨天终于弄好了一个例子,但是那个没有点击事件, 需要自己添加,参照别人的例子,弄了个比较简单的,主要是改动myRecycleradatper.java中的部分. 增加如下的接口: / ...

  2. Android之RecyclerView简单使用(三)

    使用过ListView滴小伙伴都知道.ListView有这样一个属性android:divider,用来设置每一个item之间切割线滴属性.问题来了,那么RecyclerView这个控件有没有这个属性 ...

  3. 【FastDev4Android框架开发】RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一)

    转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/49992269 本文出自:[江清清的博客] (一).前言: [好消息] ...

  4. RecyclerView 的介绍以及多布局的实例

    RecyclerView 的使用以及多布局的实例 RecyclerView 是在Android5.0之后推出的,是一个比ListView更加灵活更加高效的适配器类型控件.但是RecyclerView不 ...

  5. Android笔记——RecyclerView替代ListView

    ListView是常用列表控件,但设置Adapter时自定义代码较为复杂,因此Android3.0后,增加RecyclerView替代ListView RecyclerView没有提供OnItemCl ...

  6. Android 高级UI设计笔记07:RecyclerView 的详解

    1. 使用RecyclerView       在 Android 应用程序中列表是一个非常重要的控件,适用场合非常多,如新闻列表.应用列表.消息列表等等,但是从Android 一出生到现在并没有非常 ...

  7. Android RecyclerView完全解析

    RecyclerView完全解析 (一) 前言 话说RecyclerView已经面市很久,也在很多应用中得到广泛的使用,在整个开发者圈子里面也拥有很不错的口碑,那说明RecyclerView拥有比Li ...

  8. 为RecyclerView打造通用Adapter

    ##RecycleView简单介绍 RecyclerView控件和ListView的原理有非常多相似的地方,都是维护少量的View来进行显示大量的数据.只是RecyclerView控件比ListVie ...

  9. Android开发——RecyclerView特性以及基本使用方法(一)

    )关于点击事件,没有像ListView那样现成的API,但是自己封装起来也不难,而且我们使用ListView时,如果item中有可点击组件,那么点击事件的冲突也是一个问题,而在RecyclerView ...

  10. Android RecyclerView嵌套RecyclerView

    原理 RecyclerView嵌套RecyclerView的条目,项目中可能会经常有这样的需求,但是我们将子条目设置为RecyclerView之后,却显示不出来.自己试了很久,终于找到了原因:必须先设 ...

随机推荐

  1. iOS AppStore 申请加急审核

    1.在iTunes Connect 上面提交审核后,点击下面链接申请加急审核 链接:https://developer.apple.com/appstore/contact/appreviewteam ...

  2. UITextFieldDelegate协议

    很多人都认为UITextField很简单,为什么会写这个协议呢? 因为在实际开发中可能会用到: 比如要做到下图的效果: 文本框下面的下划线的颜色要随着输入的状态变化: 点击对应的文本框,其下面的线条变 ...

  3. HotApp小程序统计之自定义事件统计

    什么是自定义事件统计     官网:https://weixin.hotapp.cn/document 自定事件,就是自定统计任意事件的执行,灵活度最高. 用上图的云笔记说明想知道如下信息 (1)多少 ...

  4. Intent属性详解二 Action、Category

    先看效果图: 1.Action:该activity可以执行的动作 该标识用来说明这个activity可以执行哪些动作,所以当隐式intent传递过来action时,如果跟这里<intent-fi ...

  5. Activity详解四 activity四种加载模式

    先看效果图: 1概述 Activity启动方式有四种,分别是: standard singleTop singleTask singleInstance 可以根据实际的需求为Activity设置对应的 ...

  6. Android打造属于自己的数据库操作类。

    1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...

  7. 自定义控件之圆形的image

    需要添加点击事件的的时候在自定义的控件中覆写OnTouchEvent():方法进行点击事件的分发 package com.example.administrator.mvp.ui.widget; im ...

  8. iOS切图文件的命名规范

    万能公式:

  9. jQuery插件库代码分享 - 进阶者系列 - 学习者系列文章

    这些天将原来在网上找的jQuery插件进行了下整理,特此将代码分享出来给大家. 见下图结构. 对目录结构进行了分类.这里是插件列表. 这里总共收集了20来个插件.还有下面未进行划分的. 下面是DEMO ...

  10. TortoiseSVN与VisualSVN Server搭建SVN版本控制系统

    本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...