package com.doumee.lib_coremodel.base;
|
|
import android.content.Context;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public abstract class RcvBaseAdapter<D extends Object,T extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<T> {
|
public interface DeletItemListener{
|
void delet(int position);
|
}
|
|
public interface ItemLongClickListener{
|
void onLongClick(int position);
|
}
|
|
public interface ItemClickListener{
|
void onClick(int position);
|
}
|
|
protected ItemClickListener clickListener;
|
protected Context context;
|
protected List<D> datas=new ArrayList<>();
|
|
public RcvBaseAdapter(Context context) {
|
this.context = context;
|
}
|
|
public ItemClickListener getClickListener() {
|
return clickListener;
|
}
|
|
public void setClickListener(ItemClickListener clickListener) {
|
this.clickListener = clickListener;
|
}
|
|
public void addData(List<D> data1) {
|
try {
|
if (data1 != null) {
|
int s=datas.size();
|
datas.addAll(data1);
|
if(s==0){
|
notifyDataSetChanged();
|
}else {
|
notifyItemRangeInserted(s,data1.size());
|
}
|
}
|
}catch (Exception e){
|
|
}
|
|
}
|
|
public void refrenshData(List<D> data1) {
|
if (data1 != null ) {
|
datas.clear();
|
addData(data1);
|
}
|
}
|
|
public void removeDataByPosition(int position) {
|
if (position >= 0 && position < datas.size()) {
|
datas.remove(position);
|
notifyItemRemoved(position);
|
}
|
}
|
|
public D getDataByPosition(int position) {
|
if (position >= 0 && position < datas.size()) {
|
return datas.get(position);
|
}
|
return null;
|
}
|
|
public void clearData(){
|
datas.clear();
|
notifyDataSetChanged();
|
//Phoenix.clearCaches();
|
}
|
|
public List<D> getDatas() {
|
return datas;
|
}
|
|
@Override
|
public int getItemCount() {
|
return datas.size();
|
}
|
|
|
}
|