<p>
由于RecyclerView 没有设计点击事件 而是灵活的留给了开发者;</p><p>RecyclerView item点击事件一般放在Adapt中 ;
</p><div>
</div>
public interface OnItemCilckLisener {
public void onItemClick(View v,int pos);
public void onLongItemClick(View v,int pos);
}
private OnItemCilckLisener onItemCilckLisener;
public void setOnItemCilckLisener(OnItemCilckLisener lisener) {
this.onItemCilckLisener = lisener;
}
在ViewHolder里实现
@Override
public void onBindViewHolder(final MyAdapterr.MyHoder holder, final int position) {
holder.tv.setText(mData.get(position));
if (onItemCilckLisener != null) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemCilckLisener.onItemClick(holder.itemView,position);
}
});
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
onItemCilckLisener.onLongItemClick(holder.itemView,position);
return true;
}
});
}
在MainActivity里实现逻辑
myAdapter = new MyAdapterr(MainActivity.this, mData);
myAdapter.setOnItemCilckLisener(new MyAdapterr.OnItemCilckLisener() {
@Override
public void onItemClick(View v, int pos) {
Log.i("MainActivity",""+pos);
Toast.makeText(MainActivity.this, ""+pos, Toast.LENGTH_SHORT).show();
}
@Override
public void onLongItemClick(View v, int pos) {
Log.i("MainActivity",""+pos);
Toast.makeText(MainActivity.this, ""+pos, Toast.LENGTH_SHORT).show();
}
});