本文主要讲述如何为RecyclerView的每一条Item设置不同的点击事件,只对必要操作进行分析
在RecyclerView的Adapter中需要执行的操作:
//创建监听对象
private ItemOnClickListener mItemOnClickListener;
//创建设置监听的方法
public void setItemOnClickListener(ItemOnClickListener mItemOnClickListener) {
this.mItemOnClickListener = mItemOnClickListener;
}
//创建点击事件接口,将view和条目数i作为参数
public interface ItemOnClickListener {
public void onClick(View view, int i);
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
//通过实例化类的对象,根据条目i获取指定的List中的数据,绑定到viewHolder中
messageUtils = messageUtilsList.get(i);
viewHolder.message.setText(messageUtils.getMessage());
//创建viewHolder的点击监听
//该监听触发的逻辑就是mItemOnClickListener.onClick(v,i)中的逻辑
//具体的逻辑实现在继承onClick的类中
viewHolder.message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mItemOnClickListener!=null){
//调用监听器对象的点击方法
mItemOnClickListener.onClick(v,i);
}
}
});
}
在使用到该RecyclerView的类中需要执行的操作:
//创建Adapter对象
MessageAdapter messageAdapter = new MessageAdapter(messageUtilsList, getContext());
//调用Adapter中设置监听的方法
messageAdapter.setItemOnClickListener(new MessageAdapter.ItemOnClickListener() {
@Override
public void onClick(View view, int i) {
//i 就是被点击的Item的条目数
//此处即可根据i来设置不同的Item的点击事件效果
}
});
转载请注明出处:https://blog.csdn.net/YJ21712/article/details/123847250