RecyclerView虽然很好用,但是竟然没有item的点击事件,所以我们需要自己实现,所以可以在ViewAdapter中添加点击的事件。
在我们创建的继承于RecyclerView.Adapter类中添加接口:
添加一个onItemClick方法,参数为view和position,看起来更友好,也可以根据需要自定义。
public interface OnItemClickListener {
void onItemClick(View view, int position);
}
然后新建一个接口对象和一个设置方法:
private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){
this.mOnItemClickListener = mOnItemClickListener;
}
然后我们在onBindViewHolder方法中添加点击事件:
<span style="white-space:pre"> </span>public void onBindViewHolder(final MyMusicRecyclerViewViewHolder holder, final int position) {
holder.bindItem(mRecyclerViewItems.get(position));
//添加点击事件
if(mOnItemClickListener != null) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnItemClickListener.onItemClick(holder.itemView, position);
}
});
}
}
以上代码都是在Adapter中添加。
然后我们就可以通过Adapter来实现事件的响应:
<span style="white-space:pre"> </span>mRecyclerViewAdapter.setOnItemClickListener(new MyMusicRecyclerViewAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
}
});
但是这样的实现看起来可能不美观,所以可以根据需求来添加响应的效果。