RecycleView的使用(三)

上个小结中介绍了如何使用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添加点击动画吧!

时间: 2024-10-17 23:21:29

RecycleView的使用(三)的相关文章

安卓开发笔记 RecycleView (三)

创建RecycleView的步骤: 在Layout中创建RecycleView 创建List Item 和 ViewHolder 添加RecycleView 适配器 添加LayoutManager 和 将所有事情连接起来. 练习一:RecycleView 布局 第一 步:在app/build.gradle(Module:app)文件中添加依赖 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com

Android开发游记:RecycleView 实现复杂首页布局三种方式

做过电商类应用的朋友可能都会遇到一个比较头疼的问题:复杂的首页布局如何实现.参考百度糯米,美团,bilibili等应用,都会发现其首页的布局相对复杂,例如下图bilibili的首页(第二张是demo实现的效果图),可以看到在同一个页面中先是有列表布局出现,然后出现了2列的网格布局,接着3列的网格布局,最后还出现了瀑布流式布局: 这样的效果该怎么做呢?是使用LinearLayoutManager.GridLayoutManager还是StaggeredGridLayoutManager?还是根本不

Android Studio第三十二期 - RecycleView不同布局适配器写法

新需求,如图,代码已经整理好,效果如下图: 单个: 多个: demo效果图: 地址:https://github.com/geeklx/MyApplication/tree/master/p010_recycleviewall/src/main/java/com/example/p010_recycleviewall/recycleviewdifferentitem

recycleview

why recycleview ?  是ListView的更高度定制版,当你需要高效的展示大量数据时候,动态改变列表样式的时候,就用这个. 当然,如果只是动态展示数据,listview也可以做到,用它替代listview的原因有几个: 简介中提到的它封装了viewholder的回收复用. RecyclerView使用布局管理器管理子view的位置(目前尚只提供了LinearLayoutManager),你能够使用复杂的布局来展示一个列表 ,再不用拘泥于ListView的线性展示方式,如果之后提供

Recycleview checkbox 复用出现混乱解决方法

今天在做项目的一个我的收藏页面时要实现这么一个效果: 每个item 前面都有一个checkbox ,主要布局是recycleview .当我们选中某项时,继续往下滑动下面某个的checkbox也会变成选中状态. 解决方法一比较暴力 viewHolder.setIsRecyclable(false); 这样viewholder就不进行复用,也不存在checkbox 混乱选中的问题了,但是 你滑动的时候卡的要死. 第二种就是在获取到的bean中设置一个标志位,但是需要修改bean .虽然只是加个字段

Android RecycleView使用详解

一.RecycleView简要介绍 RecycleView是support-v7包中的新组件,是一个强大的滑动组件.相比于ListView和GridView具有很多让开发者喜欢的优点,如:数据绑定,Item的创建和View的回收复用机制等.但RecycleView更加高级灵活,当我们数据因为用户事件或者网络事件发生改变的时候也能很好的进行显示.RecycleView最主要的特点就是复用. 二.RecycleView与ListView区别 RecycleView是ListView的升级版,与经典的

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

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/49992269 本文出自:[江清清的博客] (一).前言: [好消息]个人网站已经上线运行,后面博客以及技术干货等精彩文章会同步更新,请大家关注收藏:http://www.lcode.org 话说RecyclerView已经面市很久,也在很多应用中得到广泛的使用,在整个开发者圈子里面也拥有很不错的口碑,那说明RecyclerView拥有比ListView,GridVi

灵活性比Listview更好的RecycleView

RecycleView:是Android L版本中新添加的一个用来取代ListView的SDK,它的灵活性与可替代性比listview更好. RecyclerView与ListView原理是类似的:都是仅仅维护少量的View并且可以展示大量的数据集.相同点:1.item的排列方式:两种布局管理器: LinearLayoutManager GridLayoutManager 2.操作item的时候提供默认的动画效果3.item多种布局比较方便4.封装了item的优化5.适配器不同不同点:1.分割线

RecyclerView使用详解(三)

在上一篇(RecyclerView使用详解(二))文章中介绍了RecyclerView的多Item布局实现,接下来要来讲讲RecyclerView的Cursor实现,相较于之前的实现,Cursor有更多的使用场景,也更加的常用,特别是配合LoaderManager和CursorLoader进行数据的缓存及加载显示,基于此我们来重点看看RecyclerView的CursorAdapter具体要怎么实现. 一.CursorAdapter实现(配合LoaderManager和CursorLoader)