RecyclerView中添加点击事件

回顾

在这篇文章中简单介绍了RecyclerView 的使用。链接:RecyclerView简单使用


定义接口

public interface ItemClickListener {
    void Onclick(View view ,int position);
    void OnLongClick(View view ,int position);
}

绑定接口到Adapter


  1. 定义属性:
private ItemClickListener itemClickListener;
  1. 创建设置方法
 public void setOnItemClickListener(ItemClickListener itemClickListener){
        this.itemClickListener = itemClickListener;
    }
  1. 在viewHolder中绑定事件
textView.setOnClickListener(new View.OnClickListener(){
               @Override
               public void onClick(View v) {
                   if(itemClickListener!=null){
                       itemClickListener.Onclick(v,getPosition());
                   }
               }
           });
textView.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        if(itemClickListener!=null){
            itemClickListener.OnLongClick(v,getPosition());
        }
        return true;
    }
});

使用

在activity或者fragment中将创建好的适配器对象调用方法:setOnItemClickListener(),传入自定义的点击事件,实现不同的功能。

gyRecyclerViewAdapter.setOnItemClickListener(new ItemClickListener(){

            @Override
            public void Onclick(View view, int position) {
                Toast.makeText(context,"you click the item"+position,Toast.LENGTH_SHORT).show();
            }

            @Override
            public void OnLongClick(View view, int position) {
                Toast.makeText(context,"you click the item"+position +" for a long time!",Toast.LENGTH_SHORT).show();
            }
        });

补充

对Item的添加于删除,都是通过Adapter提供的一些api 来实现的。常用的api如下:

notifyItemChanged(int position) //通知位置position的Item的数据改变
notifyItemInserted(int)         //通知位置position的Item的数据插入
notifyItemRemoved(int)          //通知位置position的Item的数据移除
notifyItemRangeChanged(int positionStart, int itemCount) //通知从位置positionStart开始,有itemCount个Item的数据发生改变
notifyItemRangeInserted(int positionStart, int itemCount) //通知从位置positionStart开始,有itemCount个Item的数据插入
notifyItemRangeRemoved(int positionStart, int itemCount)//通知从位置positionStart开始,有itemCount个Item的数据移除

主要是使用Adapter提供的notifyItemInserted(position)notifyItemRemoved(position)方法,告知数据改变。

RecyclerView还支持添加动画效果给Item的删除与增加。下篇文章进行总结。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值