在Fragment中实现RecyclerView的Item点击事件

1.新建RecycleViewAdapter类,继承自RecyclerView.Adapter<RecycleViewAdapter>,添加如下方法:

private View.OnClickListener getOnClickListener(final int position) {
    return new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (m_listener != null && v != null) {
                m_listener.onRecyclerItemClick(v, m_items.get(position), position);
            }
        }
    };
}

// 增加点击监听
public void setItemListener(onRecyclerItemClickerListener mListener) {
    this.m_listener = mListener;
}

// 点击监听回调接口
public interface onRecyclerItemClickerListener {
    void onRecyclerItemClick(View view, Object data, int position);
}

2.复写onBindViewHolder方法,代码如下:

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull List<Object> payloads) {
    super.onBindViewHolder(holder, position, payloads);
    holder.m_itemTitle.setText(m_items.get(position).m_title);
    holder.m_itemTitle.setOnClickListener(getOnClickListener(position));
    holder.m_itemImage.setText(m_items.get(position).m_image);
}

3.在Fragment中设置RecyclerViewAdapter的点击事件回调函数,代码如下:

m_accountRecycleViewAdapter = new RecycleViewAdapter(this, context, R.layout.recycleview_linear_item, m_data, m_itemImagefont);
m_accountRecycleViewAdapter.setItemListener(new RecycleViewAdapter.onRecyclerItemClickerListener() {
    @Override
    public void onRecyclerItemClick(View view, Object data, int position) {
        String className = data.getClass().getName().toString();
        Log.d(TAG, "-- Lee -- onRecyclerItemClick class name: " + className);
    }
});

参考文献:

[1] 英勇青铜5.Android——RecyclerView入门学习之RecyclerView.Adapter(三)[EB/OL].https://www.jianshu.com/p/b2e6ad1af557, 2016.10.21 16:40

 

 

 

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 ViewPager2 Fragment 使用 RecyclerView,并且想要为 RecyclerView 的项(item)设置点击事件,你可以按照以下步骤进行操作: 1. 创建一个自定义的 RecyclerView.Adapter,继承自 RecyclerView.Adapter<ViewHolder>。 2. 在 ViewHolder RecyclerView 的项设置点击事件。你可以通过在 ViewHolder 的构造函数为项的根布局设置点击监听器来实现这一点。例如: ```java public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { // ... public static class ViewHolder extends RecyclerView.ViewHolder { public View itemView; public ViewHolder(View itemView) { super(itemView); this.itemView = itemView; // 设置点击事件 itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 处理点击事件 int position = getAdapterPosition(); // TODO: 处理点击事件逻辑 } }); } } // ... } ``` 3. 在 Fragment 的 onCreateView 方法,创建并设置 RecyclerView 和适配器。例如: ```java public class MyFragment extends Fragment { private RecyclerView recyclerView; private MyAdapter adapter; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_layout, container, false); recyclerView = view.findViewById(R.id.recycler_view); // 设置布局管理器 recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); // 创建适配器实例 adapter = new MyAdapter(); // 设置适配器 recyclerView.setAdapter(adapter); return view; } } ``` 通过以上步骤,你就可以在 ViewPager2 Fragment RecyclerView 的项设置点击事件了。你可以在 ViewHolder 的点击监听器处理点击事件的逻辑。记得在适配器进行数据绑定,并根据点击的项进行相应的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值