@@ -8,57 +8,11 @@ import androidx.recyclerview.widget.RecyclerView
88 * Created by 王朋飞 on 2022/7/13.
99 *
1010 */
11- class QuickAdapter : RecyclerView .Adapter <QuickViewHolder <QuickItemData >>() {
11+ class QuickAdapter : RecyclerView .Adapter <QuickViewHolder <QuickItemData >>(), DataChangeAdapter {
1212
13- private var mDataList: MutableList <QuickItemData >? = null
13+ var mDataList: MutableList <QuickItemData >? = null
1414
15- var mQuickAdapterListener: QuickAdapterListener <out QuickItemData >? = null
16-
17- fun setNewData (mDataList : List <QuickItemData >? ) {
18- cleanAll()
19- appendList(mDataList)
20- notifyDataSetChanged()
21- }
22-
23- fun cleanAll () {
24- if (mDataList != null ) {
25- mDataList!! .clear()
26- }
27- notifyDataSetChanged()
28- }
29-
30- fun appendList (mDataList : List <QuickItemData >? ) {
31- if (mDataList == null ) return
32- if (this .mDataList == null ) {
33- this .mDataList = mutableListOf ()
34- }
35- this .mDataList!! .addAll(mDataList)
36- }
37-
38- fun addData (data : QuickItemData ) {
39- if (mDataList == null ) {
40- mDataList = ArrayList ()
41- }
42- mDataList!! .add(data)
43- }
44-
45- fun addData (
46- pos : Int ,
47- data : QuickItemData
48- ) {
49- if (mDataList == null ) {
50- mDataList = mutableListOf ()
51- }
52- mDataList?.add(pos, data)
53- }
54-
55- fun getData (): MutableList <QuickItemData >? {
56- return mDataList
57- }
58-
59- fun <T : QuickItemData > getRealTypeData (): MutableList <T >? {
60- return mDataList as ? MutableList <T >
61- }
15+ private var mQuickAdapterListener: QuickAdapterListener <out QuickItemData >? = null
6216
6317 override fun onCreateViewHolder (
6418 viewGroup : ViewGroup ,
@@ -68,11 +22,12 @@ class QuickAdapter : RecyclerView.Adapter<QuickViewHolder<QuickItemData>>() {
6822 it.viewType == viewType
6923 }?.let { findData ->
7024 if (findData is QuickViewDataBinding <* >) {
71- val holderAnnotationClass = findData::class .java.getAnnotation(BindBindingHolder ::class .java)
25+ val holderAnnotationClass =
26+ findData::class .java.getAnnotation(BindBindingHolder ::class .java)
7227 holderAnnotationClass?.let {
7328 val bindingHolderCls = it.value.java.getConstructor(ViewGroup ::class .java)
74- val bindingHolder =
75- bindingHolderCls.newInstance(viewGroup) as QuickViewBindingHolder <QuickViewDataBinding <out ViewDataBinding >, out ViewDataBinding >
29+ val bindingHolder = bindingHolderCls.newInstance(viewGroup)
30+ as QuickViewBindingHolder <QuickViewDataBinding <out ViewDataBinding >, out ViewDataBinding >
7631 bindingHolder.mViewData = findData
7732 bindingHolder.onCreateViewHolder(bindingHolder.itemView)
7833 return bindingHolder as QuickViewHolder <QuickItemData >
@@ -117,4 +72,12 @@ class QuickAdapter : RecyclerView.Adapter<QuickViewHolder<QuickItemData>>() {
11772 fun getQuickAdapterListener (): QuickAdapterListener <out QuickItemData >? {
11873 return mQuickAdapterListener
11974 }
75+
76+ fun setQuickAdapterListener (listener : QuickAdapterListener <out QuickItemData >? ) {
77+ this .mQuickAdapterListener = listener
78+ }
79+
80+ override fun getAdapter (): QuickAdapter {
81+ return this
82+ }
12083}
0 commit comments