基本使用請看上一篇RecyclerView的基本使用。
在為RecycleView設(shè)置點擊事件時,發(fā)現(xiàn)RecycleView沒有像ListView那樣有setOnItemClickListener的方法,需要自己來實現(xiàn)。
1.聲明接口
public interface ItemClickListener {
void OnItemClick(View v, int position);
}
2.在adapter中聲明接口變量,并設(shè)置set方法
ItemClickListener mItemClickListener;
public void setOnItemClickListener(ItemClickListener itemClickListener) {
mItemClickListener = itemClickListener;
}
在onBindViewHolder方法中將當(dāng)前是第幾個item設(shè)置到 itemView 的tag中
@Override
public void onBindViewHolder(ListHolder holder, int position) {
holder.refreshDataUI(lists.get(position));
holder.itemView.setTag(position);
}
3.在ViewHolder設(shè)置回調(diào)事件
將view的點擊事件
public class ListHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView textView;
public ListHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.text);
itemView.setOnClickListener(this);
}
public void refreshDataUI(String data) {
textView.setText(data);
}
@Override
public void onClick(View v) {
if (mItemClickListener != null) {
mItemClickListener.OnItemClick(v, (Integer) itemView.getTag());
}
}
}

GIF.gif