- RecyclerView做为一个新组件,在定制样式的时候极其灵活和简单,ListView大有被抛弃的态势,不过RecyclerView可能在样式方面的灵活性,致使其在其余方面须要亲自动手设置的方面略微复杂,点击事件就是其中一项,不过假如掌握的话,RecyclerView绝对会发挥巨大的做用的。 仿照ListView.setOnItemClickListener的写法,咱们在RecyclerView.Adapter内部定义一个内部类,来做为对外展现的接口。
public class Adpater extends RecyclerView.Adapter implements View.OnClickListener
{
public static interface OnItemClickListener{
/*position此处是每个Item所在的位置,做为Tag*/
public void setOnItemClick(View v,int position);
};
//
private OnItemClickListener listener;
/*暴露给外部的接口,给内部类的对象赋值*/
public void setOnItemClickListener(OnItemClickListener listener)
{
this.listener = listener;
}
@Override
public void onBindViewHolder(RecyclerViewHolder holder, final int position) {
/*为每个Item设置一个tag*/
holder.itemView.setTag(position);
}
@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.adapter_employ_item,parent,false);
/*设置每个Item的点击事件*/
view.setOnClickListener(this);
return new RecyclerViewHolder(view);
}
//点击事件触发,调用实现接口的方法
@Override
public void Onclick(View v)
{
if (listener!=null) {
listener.setOnItemClick(v,v.getTag);
}
}
public class RecyclerViewHolder extends RecyclerView.ViewHolder{
public RecyclerViewHolder(View itemView) {
super(itemView);
}
}
}
相关连接,同时强力推荐此网站学习androidhtml