您的位置:首页 > 其它

RecyclerView 的点击事件!

2016-12-28 16:37 120 查看
本文参照原文地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2647.html

作者:泡在网上的日子!

使用方法:

adapter代码如下:

public class AttachmentMaterAdapter extends RecyclerView.Adapter<AttachmentMaterAdapter.AttachmentMaterHolder>
implements OnClickListener{

private Context context;
private List<MaterialBean> materLists;
private OnRecyclerViewItemClickListener mOnItemClickListener = null;

public AttachmentMaterAdapter(Context context, List<MaterialBean> materLists) {
this.context = context;
this.materLists = materLists;
}

public static interface OnRecyclerViewItemClickListener {
void onItemClick(View view , MaterialBean materDatas);
}

@Override
public AttachmentMaterHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(context).inflate(R.layout.material_list_item,null);
AttachmentMaterHolder holder=new AttachmentMaterHolder(view);
view.setOnClickListener(this);
return holder;
}

@Override
public void onBindViewHolder(AttachmentMaterHolder holder, int position) {
MaterialBean info=materLists.get(position);
holder.itemView.setTag(info);
if(info!=null){
holder.icon.setBackgroundResource(info.getIcon());
holder.textView.setText(info.getName());
}
}

@Override
public int getItemCount() {
return materLists.size();
}

public class AttachmentMaterHolder extends ViewHolder{
private ImageView icon;
private TextView textView;

public AttachmentMaterHolder(View itemView) {
super(itemView);
icon= (ImageView) itemView.findViewById(R.id.icon);
textView= (TextView) itemView.findViewById(R.id.text);
}
}

@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
//注意这里使用getTag方法获取数据
mOnItemClickListener.onItemClick(v,(MaterialBean)v.getTag());
}
}

public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
this.mOnItemClickListener = listener;
}
}


使用的话就是用adapter调用setItemClick方法:

if(materLists!=null&&materLists.size()>0){
materAdapter=new AttachmentMaterAdapter(MaterialViewActivity.this,materLists);
material_folad_list.setLayoutManager(new LinearLayoutManager(MaterialViewActivity.this));
material_folad_list.setItemAnimator(new DefaultItemAnimator());
material_folad_list.addItemDecoration(new DividerItemDecoration(
MaterialViewActivity.this, DividerItemDecoration.VERTICAL_LIST));
material_folad_list.setAdapter(materAdapter);
materAdapter.setOnItemClickListener(new AttachmentMaterAdapter.OnRecyclerViewItemClickListener() {
@Override
public void onItemClick(View view,MaterialBean materDatas) {
//处理itemClick点击事件。。。。。。。。。。。。
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: