在LinearAdapter里implements View.OnClickListener:
public class LinearAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener
定义一个OnItemClickListener的接口,再声明一个OnItemClickListener,生成set方法:
public interface OnItemClickListener {
void onItemClick(int position);
}
private OnItemClickListener mItemClickListener;
public void setItemClickListener(OnItemClickListener itemClickListener) {
mItemClickListener = itemClickListener;
}
重写OnClick方法:
public void onClick(View v) {
if (mItemClickListener!=null){
mItemClickListener.onItemClick((Integer) v.getTag());
}
}
在onCreateViewHolder里:
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(mContext).inflate(R.layout.layout_linear_item, viewGroup, false);
view.setOnClickListener(this);
RecyclerView.ViewHolder viewHolder = new LinearViewHolder(view);
return viewHolder;
}
在onBindViewHolder里(LinearViewHolder 要自己定义):
@Override
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder viewHolder, final int i) {
LinearViewHolder linearViewHolder = (LinearViewHolder) viewHolder;
linearViewHolder.itemView.setTag(i);
}
最后在Activity里使用LinearAdapter:
LinearAdapter linearAdapter = new LinearAdapter(ManagementActivtiy.this);
linearAdapter.setItemClickListener(this);
recyclerView.setAdapter(linearAdapter);