RecyclerView设置点击事件的一种方法

作者: 五月天外飞仙 | 来源:发表于2019-04-16 16:20 被阅读1次

首先在Adapter里面定义一个点击接口用于回调

public interface Click{
        void onItemClick(int position,View itemView);
        void onItemLongClick(int position,View itemView);
    }

定义一个接口参数和一个设置这个参数的Set方法

  private Click onClick;
  
    public void setOnClick(Click click){
        this.onClick=click;
    }

在adapter里的onBindViewHolder中设置这个点击事件,其实就是在这里监听点击事件的,为每个item在点击的时候添加一个itemClick方法。

 @Override
    public void onBindViewHolder(@NonNull final adapter.ViewHolder viewHolder, int i) {
            viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    onClick.onItemClick(viewHolder.getLayoutPosition(),viewHolder.itemView);
                }
            });

            viewHolder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    onClick.onItemLongClick(viewHolder.getLayoutPosition(),viewHolder.itemView);
                    return true;
                }
            });
    }

最后在需要的地方继承这个接口,并且实现itemClick方法即可

public class DemoActivity extends AppCompatActivity implements adapter.Click{
       adapter adapter=new adapter();
       adapter.setOnClick(this);

@Override
    public void onItemClick(int position, View itemView) {
        Toast.makeText(this,"点击",Toast.LENGTH_SHORT).show();
        //点击事件
    }

    @Override
    public void onItemLongClick(int position, View itemView) {
        Toast.makeText(this,"长按",Toast.LENGTH_SHORT).show();
        //长按事件
    }
}

相关文章

网友评论

    本文标题:RecyclerView设置点击事件的一种方法

    本文链接:https://www.haomeiwen.com/subject/yowbwqtx.html