В моем приложении более 4 списков различных моделей данных.
Я хочу создать более обобщенный c CommonAdapter
, расширяющий PagedListAdapter
Вот мой текущий код
public abstract class CommonPagedListAdapter<T, VH extends RecyclerView.ViewHolder>
extends PagedListAdapter<T, VH> {
private Context mContext;
private ArrayList<T> mArrayList;
public abstract void onItemClick(T model, int position);
public abstract int getLayoutResId();
protected CommonPagedListAdapter(Context context, ArrayList<T> arrayList,
@NonNull DiffUtil.ItemCallback<T> diffCallback) {
super(diffCallback);
this.mContext = context;
this.mArrayList = arrayList;
}
@NonNull
@Override
public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//what should i return here?
View view = LayoutInflater.from(mContext).inflate(getLayoutResId(),parent,false);
return (VH) new ItemViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull VH holder, int position) {
//what should i do here?
// holder
}
class ItemViewHolder extends RecyclerView.ViewHolder {
public ItemViewHolder(@NonNull View itemView) {
super(itemView);
}
}
}
Я использую PagelListAdapter из Android Библиотеки пейджинга
Я хотел бы знать несколько вещей:
- Что должно быть установлено в onCreateViewHolder
, поскольку у меня будут разные ViewHolders?
- Что следует установить в onBindViewHolder
?
- Действительно ли это правильный путь, который делает CommonPagedListAdapter
расширяемым и обслуживаемым?