AndroID 中RecycleVIEw实现item的点击事件
RecycleVIEw现在已经越来越受到大家的重视,因为他既可以代替ListVIEw还可以代替GrIDVIEw,但是RecycleVIEw本身不不像ListVIEw那样具有setonItemClickListener,这个关于子item的点击,但是我们往往会用到RecycleVIEw并且希望他的自孩子可以被点击,那么如何实现他的item的点击事件呢?
首先我们在RecyclerVIEw.VIEwHolder中的实现:
public class GrIDVIEwHolder extends RecyclerVIEw.VIEwHolder implements OnClickListener{ //声明MyItemClickListener private MyItemClickListener mListener; public GrIDVIEwHolder(VIEw rootVIEw,MyItemClickListener Listener) { super(rootVIEw); this.mListener = Listener; rootVIEw.setonClickListener(this); } @OverrIDe public voID onClick(VIEw v) {//如果mListener不为空,就实现接口中的方法onItemClick其中getposition()是得到被点击位置的position if(mListener != null){ mListener.onItemClick(v,getposition()); } } //声明MyItemClickListener这个接口 public interface MyItemClickListener { public voID onItemClick(VIEw vIEw,int postion); } }
最后在RecyclerVIEwAdapter中实现:
package com.ledon.activity.adapter;import Java.util.ArrayList;import java.util.List;import com.ledon.activity.adapter.GrIDVIEwHolder.MyItemClickListener;import com.ledon.ledongym.R;import com.lIDroID.xutils.BitmapUtils;import AndroID.content.Context;import androID.support.v7.Widget.RecyclerVIEw;import androID.text.TextUtils;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEw.OnClickListener;import androID.vIEw.VIEwGroup;public class RecyclerVIEwAdapter extends RecyclerVIEw.Adapter<GrIDVIEwHolder> { private final List<String> labels; private LayoutInflater mLayoutInflater; private Context context; private MyItemClickListener mItemClickListener; public RecyclerVIEwAdapter(int count,Context context) { this.labels = new ArrayList<String>(count); mLayoutInflater = LayoutInflater.from(context); for (int i = 0; i < count; i++) { labels.add(String.valueOf(i)); } } @OverrIDe public int getItemCount() { return labels.size(); } @OverrIDe public voID onBindVIEwHolder(GrIDVIEwHolder vIEwHolder,int position) { vIEwHolder.itemVIEw.setTag(labels.get(position)); } @OverrIDe public GrIDVIEwHolder onCreateVIEwHolder(VIEwGroup parent,int vIEwType) { VIEw vIEw = null; vIEw = mLayoutInflater.inflate(R.layout.item_userinfo,parent,false); //通过构造函数将mItemClickListener GrIDVIEwHolder holder = new GrIDVIEwHolder(vIEw,mItemClickListener); return holder; } /** * 设置Item点击监听 * * @param Listener */ public voID setonItemClickListener(MyItemClickListener Listener) { this.mItemClickListener = Listener; } }
最后在activity中
//根据adapter来设置item的点击事件 recyclerVIEwAdapter.setonItemClickListener(new MyItemClickListener() { @OverrIDe public voID onItemClick(VIEw vIEw,int postion) { } });
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的Android 中RecycleView实现item的点击事件全部内容,希望文章能够帮你解决Android 中RecycleView实现item的点击事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)