码迷,mamicode.com
首页 > 其他好文 > 详细

RecycleView的使用(三)

时间:2016-07-30 22:41:17      阅读:388      评论:0      收藏:0      [点我收藏+]

标签:

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

RecycleView的使用(三)

标签:

原文地址:http://www.cnblogs.com/wobeinianqing/p/5721870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!