通用的recyclerViewAdapter(kotlin版)

立即上代碼

public abstract class BaseRecyclerAdapter<T>(val datas: ArrayList<T>?, val ctx: Context?) : RecyclerView.Adapter<BaseViewHolder>() {
    override fun getItemCount(): Int {
        return datas?.size ?: 0
    }

    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): BaseViewHolder? {
        var view = getViewResource(viewType)
        var holder = BaseViewHolder(view)
        addAllViewItems(holder?.viewMap,view)
        return holder
    }

    override fun onBindViewHolder(holder: BaseViewHolder?, position: Int) {
        bindData(holder?.viewMap, datas?.get(position), position)
    }

    /**
     * 添加item布局
     */
    abstract fun getViewResource(viewType: Int): View

    /**
     * 記錄下item布局下所有控件
     */
    abstract fun addAllViewItems(viewMap: SparseArray<View>?,root:View)

    /**
     * 綁定item數(shù)據(jù)
     */
    abstract fun  bindData(viewMap: SparseArray<View>?, t: T?, position: Int)
}

public class BaseViewHolder : RecyclerView.ViewHolder {
    var viewMap= SparseArray<View>()
    constructor(itemView: View?) : super(itemView)
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容