Recyclerview的点击和长按事件

首先是在Adapter适配器里

 
  
private OnItemClick mOnItemClickLitener;

//  定义接口写条目点击事件和长按事件
public interface OnItemClick {
    //点击事件
    void onItemClick(View view, int position);
    //长按事件
    void onItemLongClick(View view, int position);
}
//外部访问的方法
public void setOnItemClickLitener(OnItemClick mOnItemClickLitener) {
    this.mOnItemClickLitener = mOnItemClickLitener;
}


onBindViewHolder  在Adapter适配器重写的方法里添加

 
  
// 如果设置了回调,则设置点击事件
          //点击事件和长按事件
    if (mOnItemClickLitener != null) {
        //点击事件
        holder.getTv().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 从布局中获取条目位置
                int position1 = holder.getLayoutPosition();
                mOnItemClickLitener.onItemClick(holder.getTv(),position1);
            }
        });
        //长按事件
        holder.getTv().setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                // 从布局中获取条目位置
                int position1 = holder.getLayoutPosition();
                mOnItemClickLitener.onItemLongClick(holder.getTv(),position1);
                return false;
            }
        });
在MainActivity里用实例化的适配器对象调用:
//点击和长按事件(历史记录)
recyler_adapter_lishi.setOnItemClickLitener(new Recyler_Adapter_lishi.OnItemClick() {
    @Override
    public void onItemClick(View view, int position) {
      

    }

    @Override
    public void onItemLongClick(View view, int position) {
     
    }
});

你可能感兴趣的:(Recyclerview的点击和长按事件)