Android 中RecycleView实现item的点击事件
Android中RecycleView实现item的点击事件
RecycleView现在已经越来越受到大家的重视,因为他既可以代替listView还可以代替GridView,但是RecycleView本身不不像ListView那样具有setOnItemClickListener,这个关于子item的点击,但是我们往往会用到RecycleView并且希望他的自孩子可以被点击,那么如何实现他的item的点击事件呢?
首先我们在RecyclerView.ViewHolder中的实现:
publicclassGridViewHolderextendsRecyclerView.ViewHolderimplementsOnClickListener{ //声明MyItemClickListener privateMyItemClickListenermListener; publicGridViewHolder(ViewrootView,MyItemClickListenerlistener){ super(rootView); this.mListener=listener; rootView.setOnClickListener(this); } @Override publicvoidonClick(Viewv){ //如果mListener不为空,就实现接口中的方法onItemClick其中getPosition()是得到被点击位置的position if(mListener!=null){ mListener.onItemClick(v,getPosition()); } } //声明MyItemClickListener这个接口 publicinterfaceMyItemClickListener{ publicvoidonItemClick(Viewview,intpostion); } }
最后在RecyclerViewAdapter中实现:
packagecom.ledon.activity.adapter; importJava.util.ArrayList; importjava.util.List; importcom.ledon.activity.adapter.GridViewHolder.MyItemClickListener; importcom.ledon.ledongym.R; importcom.lidroid.xutils.BitmapUtils; importAndroid.content.Context; importandroid.support.v7.widget.RecyclerView; importandroid.text.TextUtils; importandroid.view.LayoutInflater; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.view.ViewGroup; publicclassRecyclerViewAdapterextendsRecyclerView.Adapter{ privatefinalList labels; privateLayoutInflatermLayoutInflater; privateContextcontext; privateMyItemClickListenermItemClickListener; publicRecyclerViewAdapter(intcount,Contextcontext){ this.labels=newArrayList (count); mLayoutInflater=LayoutInflater.from(context); for(inti=0;i 最后在activity中
//根据adapter来设置item的点击事件 recyclerViewAdapter.setOnItemClickListener(newMyItemClickListener(){ @Override publicvoidonItemClick(Viewview,intpostion){ } });感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!