T - The type of the datasource / itemspublic abstract class AbsDelegationAdapter<T>
extends androidx.recyclerview.widget.RecyclerView.Adapter
AdapterDelegatesManager and calls
the corresponding AdapterDelegatesManager methods from Adapter's method like onCreateViewHolder(ViewGroup, int), onBindViewHolder(RecyclerView.ViewHolder, int)
and getItemViewType(int). So everything is already setup for you. You just have to add
the AdapterDelegates i.e. in the constructor of a subclass that inheritance from this
class:
class MyAdapter extends AbsDelegationAdapter<MyDataSourceType>{
public MyAdapter(){
this.delegatesManager.add(new FooAdapterDelegate());
this.delegatesManager.add(new BarAdapterDelegate());
}
}
or you can pass a already prepared AdapterDelegatesManager via constructor like this:
class MyAdapter extends AbsDelegationAdapter<MyDataSourceType>{
public MyAdapter(AdapterDelegatesManager manager){
super(manager)
}
}
| Modifier and Type | Field and Description |
|---|---|
protected AdapterDelegatesManager<T> |
delegatesManager |
protected T |
items |
| Constructor and Description |
|---|
AbsDelegationAdapter() |
AbsDelegationAdapter(AdapterDelegate<T>... delegates)
Adds a list of
AdapterDelegates |
AbsDelegationAdapter(AdapterDelegatesManager<T> delegatesManager) |
| Modifier and Type | Method and Description |
|---|---|
T |
getItems()
Get the items / data source of this adapter
|
int |
getItemViewType(int position) |
void |
onBindViewHolder(androidx.recyclerview.widget.RecyclerView.ViewHolder holder,
int position) |
void |
onBindViewHolder(androidx.recyclerview.widget.RecyclerView.ViewHolder holder,
int position,
java.util.List payloads) |
androidx.recyclerview.widget.RecyclerView.ViewHolder |
onCreateViewHolder(android.view.ViewGroup parent,
int viewType) |
boolean |
onFailedToRecycleView(androidx.recyclerview.widget.RecyclerView.ViewHolder holder) |
void |
onViewAttachedToWindow(androidx.recyclerview.widget.RecyclerView.ViewHolder holder) |
void |
onViewDetachedFromWindow(androidx.recyclerview.widget.RecyclerView.ViewHolder holder) |
void |
onViewRecycled(androidx.recyclerview.widget.RecyclerView.ViewHolder holder) |
void |
setItems(T items)
Set the items / data source of this adapter
|
bindViewHolder, createViewHolder, getItemCount, getItemId, hasObservers, hasStableIds, notifyDataSetChanged, notifyItemChanged, notifyItemChanged, notifyItemInserted, notifyItemMoved, notifyItemRangeChanged, notifyItemRangeChanged, notifyItemRangeInserted, notifyItemRangeRemoved, notifyItemRemoved, onAttachedToRecyclerView, onDetachedFromRecyclerView, registerAdapterDataObserver, setHasStableIds, unregisterAdapterDataObserverprotected AdapterDelegatesManager<T> delegatesManager
protected T items
public AbsDelegationAdapter()
public AbsDelegationAdapter(@NonNull
AdapterDelegatesManager<T> delegatesManager)
public AbsDelegationAdapter(@NonNull
AdapterDelegate<T>... delegates)
AdapterDelegatesdelegates - Items to add@NonNull
public androidx.recyclerview.widget.RecyclerView.ViewHolder onCreateViewHolder(@NonNull
android.view.ViewGroup parent,
int viewType)
onCreateViewHolder in class androidx.recyclerview.widget.RecyclerView.Adapterpublic void onBindViewHolder(@NonNull
androidx.recyclerview.widget.RecyclerView.ViewHolder holder,
int position)
onBindViewHolder in class androidx.recyclerview.widget.RecyclerView.Adapterpublic void onBindViewHolder(@NonNull
androidx.recyclerview.widget.RecyclerView.ViewHolder holder,
int position,
@NonNull
java.util.List payloads)
onBindViewHolder in class androidx.recyclerview.widget.RecyclerView.Adapterpublic int getItemViewType(int position)
getItemViewType in class androidx.recyclerview.widget.RecyclerView.Adapterpublic void onViewRecycled(@NonNull
androidx.recyclerview.widget.RecyclerView.ViewHolder holder)
onViewRecycled in class androidx.recyclerview.widget.RecyclerView.Adapterpublic boolean onFailedToRecycleView(@NonNull
androidx.recyclerview.widget.RecyclerView.ViewHolder holder)
onFailedToRecycleView in class androidx.recyclerview.widget.RecyclerView.Adapterpublic void onViewAttachedToWindow(@NonNull
androidx.recyclerview.widget.RecyclerView.ViewHolder holder)
onViewAttachedToWindow in class androidx.recyclerview.widget.RecyclerView.Adapterpublic void onViewDetachedFromWindow(@NonNull
androidx.recyclerview.widget.RecyclerView.ViewHolder holder)
onViewDetachedFromWindow in class androidx.recyclerview.widget.RecyclerView.Adapterpublic T getItems()
public void setItems(T items)
items - The items / data source