基本使用请看上一篇RecyclerView的基本使用。
在为RecycleView设置点击事件时,发现RecycleView没有像ListView那样有setOnItemClickListener的方法,需要自己来实现。
1.声明接口
public interface ItemClickListener {
void OnItemClick(View v, int position);
}
2.在adapter中声明接口变量,并设置set方法
ItemClickListener mItemClickListener;
public void setOnItemClickListener(ItemClickListener itemClickListener) {
mItemClickListener = itemClickListener;
}
在onBindViewHolder方法中将当前是第几个item设置到 itemView 的tag中
@Override
public void onBindViewHolder(ListHolder holder, int position) {
holder.refreshDataUI(lists.get(position));
holder.itemView.setTag(position);
}
3.在ViewHolder设置回调事件
将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());
}
}
}