RecyclerView没有默认的事件监听,需要我们自己来实现。
方法是在Adapte的ViewHolder构造方法里添加点击事件,有一个方法getAdapterPosition(),用来定位.
<pre style="background-color:#ffffff;color:#000000;font-family:'Consolas';font-size:13.5pt;"><pre name="code" class="java"><span style="font-size:14px;">
</span><pre name="code" class="java"><span style="font-size:14px;">class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private LinearLayout content;
public ViewHolder(View itemView) {
super(itemView);
content= (LinearLayout) itemView
.findViewById(R.id.id_content_);
content.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v,getAdapterPosition(),Snackbar.LENGTH_SHORT).show();
}
});</span>
}如果想要在Activity中去处理点击事件,则比较麻烦:
1.自己创建点击事件处理接口
2.使Activity实现该接口
3.在Adapter中添加自定义接口的属性。
4.在Activity中设置adapter的属性。
5.让Adapter的ViewHolder实现事件监听接口View.OnClickListener,在ViewHolder的onClick方法中调用Activity的事件处理方法