1、定义接口:OnRecyclerItemClickListener
public interface OnRecyclerItemClickListener {
//RecyclerView的点击事件,将信息回调给view
void onRecyclerItemClick(int Position);
}
2、接下来就是绑定监听事件了。
因为官方没有提供点击的监听,所以我们这个监听方法就不能绑定在recyclerview对象上,因此,我们将这个步骤转移到adapter中进行;
//声明自定义的监听接口
private OnRecyclerItemClickListener monItemClickListener;
/**
* 描述:提供set方法供Activity或Fragment调用
* @param listener 监听器
*/
public void setRecyclerItemClickListener(OnRecyclerItemClickListener listener){
monItemClickListener=listener;
}
class Holder extends RecyclerView.ViewHolder {
TextView tvLineNumber;
TextView tvCarConCode;
private Holder(@NonNull View itemView) {
super(itemView);
tvLineNumber = (TextView) itemView.findViewById(R.id.m039_mt_common_instance_list_by_car_con_fragment_item_tv_line_number);
tvCarConCode = (TextView) itemView.findViewById(R.id.m039_mt_common_instance_list_by_car_con_fragment_item_tv_car_con_code);
/**
* 描述:将监听传递给自定义接口
*/
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (monItemClickListener!=null){
monItemClickListener.onRecyclerItemClick(getAdapterPosition());
}
}
});
}
3、最后在Activity或Fragmen中的调用
/**
* 描述:数据行点击事件
*/
matAdapt.setRecyclerItemClickListener(new OnRecyclerItemClickListener() {
@Override
public void onRecyclerItemClick(int Position) {
//具体的操作逻辑
if (matViewList.get(Position).IS_CHECKED){
matViewList.get(Position).IS_CHECKED = false;
}else{
matViewList.get(Position).IS_CHECKED=true;
}
rvProcess.setAdapter(matAdapt);
}
});