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