新建一个callback方法。
在recyclerView经常会遇到子项的点击事件,添加callback回调;
1.新建一个interface
public interface ItemClickCallBack{
void onItemClick(int pos);
}
2.在该类中定一个变量。
private ItemClickCallBack clickCallBack;
3.为这个类暴露出一个callback方法。
public void setClickCallBack(ItemClickCallBack clickCallBack) {
this.clickCallBack = clickCallBack;
}
4.在逻辑处理部分调用它。
viewHolder.mTextView.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
if(clickCallBack != null){
clickCallBack.onItemClick(position);
}
}
}
);
5.在adapter中调用这个方法。
mAdapter.setClickCallBack(
new MyAdapter.ItemClickCallBack() {
@Override
public void onItemClick(int pos) {
// a demo for notifyItemRemoved
listData.remove(pos);
mRecyclerView.notifyItemRemoved(listData,pos);
}
}
);
相对来说callback还是挺麻烦的。
网友评论