EasyRecyclerView icon indicating copy to clipboard operation
EasyRecyclerView copied to clipboard

item中有删除事件,删除成功后如何刷新List

Open is1988 opened this issue 6 years ago • 3 comments

集成了BaseViewHolder setData里有setOnClickListener 设置了删除这一条数据 请问如何刷新 尝试了如下操作都不行

//                    mList.remove(getAdapterPosition());
//                    getOwnerAdapter().notifyItemRemoved(getLayoutPosition());
//                    getOwnerAdapter().notifyItemRangeChanged(getLayoutPosition(),mList.size());

或者说activity里实现item里的监听 用adapter方法刷新也可以 请指教

is1988 avatar Aug 03 '17 15:08 is1988

使用adapter里面的OnBindViewHolder设置响应事件是可以的,但是貌似OnBindViewHolder和BaseViewHolder 的setData有冲突,设置了OnBindViewHolder之后setData不触发了。我的解决办法就是把setdata里面的内容全部搬到OnBindViewHolder里面

RossPoom avatar Oct 09 '17 09:10 RossPoom

找到原因了。。。 public void OnBindViewHolder(BaseViewHolder holder, final int position) { holder.setData(getItem(position)); } 所以要先调用super.OnBindViewHolder(holder, position) 再写你自己的内容

RossPoom avatar Oct 09 '17 09:10 RossPoom

删除写在自己定义的adapter里面,然后通过接口回调给Activity最后再remove

public class DeleteItemAdapter extends RecyclerArrayAdapter<String> {

private AddOrRemove onClick;

public interface AddOrRemove{
     void addItem(int position);
     void removeItem(int position);
}
public void setClick(AddOrRemove onClick){
    this.onClick = onClick;
}

public DeleteItemAdapter(Context context) {
    super(context);
}



@Override
public BaseViewHolder OnCreateViewHolder(final ViewGroup parent, int viewType) {
    final DeleteItemHolder deleteItemHolder = new DeleteItemHolder(parent);

  

    deleteItemHolder.add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onClick.addItem(deleteItemHolder.getAdapterPosition()-headers.size());
        }
    });

    deleteItemHolder.delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onClick.removeItem(deleteItemHolder.getAdapterPosition()-headers.size());
        }
    });


    return deleteItemHolder;
}

}

ciscolxh avatar Oct 19 '17 09:10 ciscolxh