上篇简单介绍了 RecyclerView 的用法,说到RecyclerView 中没有提供 OnItemClickListener 和 OnItemLongClickListener 的监听事件,也就是说,我们要自己在adapter里面写接口实现。
RecyclerView 要想实现响应事件,需要自定义监听器 //实现RecyclerView响应事件的步骤 //1.声明一个借口,定义响应事件的方法 //2.在RecyclerView的Adapter内来维护(声明)一个接口对象 //3.在OnBindViewHolder方法中对Item设置点击事件监听,并将事件传递给接口对象 //4.在mainActivity中实现接口并重写方法实现内容
现在我们来看一看怎么实现RecyclerView 的点击事件:
首先定义两个接口:
第一个,MyOnItemClickListener.java,响应 RecyclerView item的点击事件:
import android.view.View;
/**
* item点击接口
*/
public interface MyOnItemClickListener {
void OnItemClickListener(View view, int position);
}
第二个,MyOnItemLongClickListener.java,响应 RecyclerView item的长按事件:
import android.view.View;
/**
* item长按接口
*/
public interface MyOnItemLongClickListener {
void OnItemLongClickListener(View view, int position);
}
然后在MyRecyclerViewAdapter里面声明这两个接口,定义两个方法,用来让adapter在Activity里面回调,并在onBindViewHolder中给item设置监听:
定义的方法:
/**
* 列表点击事件
*
* @param itemClickListener
*/
public void setOnItemClickListener(MyOnItemClickListener itemClickListener) {
this.itemClickListener = itemClickListener;
}
/**
* 列表长按事件
*
* @param itemLongClickListener
*/
public void setOnItemLongClickListener(MyOnItemLongClickListener itemLongClickListener) {
this.itemLongClickListener = itemLongClickListener;
}
onBindViewHolder中:
<