前言
小白篇烛缔,哈哈,我也是小白轩拨,慢慢積累
原理
就是接口回調(diào)践瓷,可以看到這是我們平時(shí)使用的 點(diǎn)擊事件,仿照他去寫
mBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
實(shí)現(xiàn)
(1) 在Recycler的適配器中定義接口亡蓉,如下
//第一步 定義接口
public interface OnItemClickListener {
void onClick(int position);
}
private OnItemClickListener listener;
//第二步晕翠, 寫一個(gè)公共的方法
public void setOnItemClickListener(OnItemClickListener listener) {
this.listener = listener;
}
public interface OnItemLongClickListener {
void onClick(int position);
}
private OnItemLongClickListener longClickListener;
public void setOnItemLongClickListener(OnItemLongClickListener longClickListener) {
this.longClickListener = longClickListener;
}
(2) 在適配器的onBindViewHolder方法中,實(shí)現(xiàn)接口回調(diào)砍濒,如下
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.onClick(position);
}
}
});
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (longClickListener != null) {
longClickListener.onClick(position);
}
return true;
}
});
}
(3) 如何使用
使用適配器的對(duì)象淋肾,調(diào)用其內(nèi)部自己寫的方法
myAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
Toast.makeText(MainActivity.this, "click " + position, Toast.LENGTH_SHORT).show();
}
});
myAdapter.setOnItemLongClickListener(new MyAdapter.OnItemLongClickListener() {
@Override
public void onClick(int position) {
Toast.makeText(MainActivity.this, "long click " + position, Toast.LENGTH_SHORT).show();
}
});