change superadapter with generic, dummy object with custom model and … #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
### About Changes
Super Adapter with generic
abstract class SuperAdapter<R, RHolder : SuperViewHolder<R>, B, BHolder : SuperViewHolder<B>> : RecyclerView.Adapter<RecyclerView.ViewHolder>()
abstract fun onCreateViewHolderBetweenElements(view: View): BHolder
abstract fun onCreateRealViewHolder(view: View): RHolder
@get:LayoutRes abstract val realViewItemResLayout: Int
@get:LayoutRes abstract val itemBetweenElementsResLayout: Int
add two abstract fun with two para (holder,data) for bind data with real view and other view
abstract fun onBindOtherViewHolder(holder: BHolder, data: B)
abstract fun onBindRealViewHolder(holder: RHolder, data: R)
Dummy object with generic
create abstract class for custom data type
abstract class DataForOther<T>{ abstract val data : T }
class DummyObject<T>(val position:Int, val data: T) : Comparable<DummyObject<T>>, { override fun compareTo(other: DummyObject<T>): Int { //let's sort the object based on position in ascending order //returns a negative integer, zero, or a positive integer as this position //is less than, equal to, or greater than the specified object. return this.position - other.position } }