From a2d474abbac867503c2f9d85049d322e4b3ce25c Mon Sep 17 00:00:00 2001 From: ultranity Date: Sun, 3 Sep 2023 23:18:09 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BB=85=E5=9C=A8=E6=98=8E=E7=A1=AE?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E7=9A=84=E5=9C=BA=E6=99=AF=E4=B8=8B=E5=85=81?= =?UTF-8?q?=E8=AE=B8item=E5=8F=AF=E7=A9=BA=20fix=20#3793;=20=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E9=87=8D=E8=BD=BD=20getItem;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../animation/adapter/AnimationAdapter.kt | 2 +- .../adapter/DiffDragAndSwipeAdapter.kt | 2 +- .../adapter/HeaderDragAndSwipeAdapter.kt | 2 +- .../emptyview/adapter/EmptyViewAdapter.kt | 2 +- .../headerfooter/adapter/FooterAdapter.kt | 2 +- .../headerfooter/adapter/HeaderAdapter.kt | 2 +- .../home/adapter/HomeTopHeaderAdapter.kt | 5 ++- .../loadmore/adapter/RecyclerViewAdapter.kt | 2 +- .../activity/scene/adapter/GroupAdapter.kt | 2 +- .../adapter/base/BaseMultiItemAdapter.kt | 4 +-- .../library/adapter/base/BaseQuickAdapter.kt | 8 ++--- .../adapter/base/BaseSingleItemAdapter.kt | 36 ++++++++++--------- 12 files changed, 36 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/animation/adapter/AnimationAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/animation/adapter/AnimationAdapter.kt index 9f7b32df2..eee6534ca 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/animation/adapter/AnimationAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/animation/adapter/AnimationAdapter.kt @@ -35,7 +35,7 @@ class AnimationAdapter : return QuickViewHolder(R.layout.layout_animation, parent) } - override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: Status?) { + override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: Status) { when (holder.layoutPosition % 3) { 0 -> holder.setImageResource(R.id.img, R.mipmap.animation_img1) 1 -> holder.setImageResource(R.id.img, R.mipmap.animation_img2) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt index 07f474caf..07ed5e5fe 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt @@ -21,7 +21,7 @@ class DiffDragAndSwipeAdapter : } override fun onBindViewHolder( - holder: QuickViewHolder, position: Int, item: DiffEntity? + holder: QuickViewHolder, position: Int, item: DiffEntity ) { if (item == null) return diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/HeaderDragAndSwipeAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/HeaderDragAndSwipeAdapter.kt index 3f7e99675..b16a15e5f 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/HeaderDragAndSwipeAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/HeaderDragAndSwipeAdapter.kt @@ -21,7 +21,7 @@ open class HeaderDragAndSwipeAdapter : BaseQuickAdapter return QuickViewHolder(R.layout.item_draggable_view, parent) } - override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: String?) { + override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: String) { when (holder.layoutPosition % 3) { 0 -> holder.setImageResource(R.id.iv_head, R.mipmap.head_img0) 1 -> holder.setImageResource(R.id.iv_head, R.mipmap.head_img1) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/emptyview/adapter/EmptyViewAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/emptyview/adapter/EmptyViewAdapter.kt index f9bd35f37..b7634b805 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/emptyview/adapter/EmptyViewAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/emptyview/adapter/EmptyViewAdapter.kt @@ -22,7 +22,7 @@ class EmptyViewAdapter : BaseQuickAdapter() { return VH(parent) } - override fun onBindViewHolder(holder: VH, position: Int, item: Status?) { + override fun onBindViewHolder(holder: VH, position: Int, item: Status) { when (holder.layoutPosition % 3) { 0 -> holder.binding.img.setImageResource(R.mipmap.animation_img1) 1 -> holder.binding.img.setImageResource(R.mipmap.animation_img2) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/FooterAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/FooterAdapter.kt index 42eb3b7bf..5f503e180 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/FooterAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/FooterAdapter.kt @@ -8,7 +8,7 @@ import com.chad.library.adapter.base.viewholder.QuickViewHolder class FooterAdapter( private val isDelete: Boolean -) : BaseSingleItemAdapter() { +) : BaseSingleItemAdapter(null) { override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): QuickViewHolder { return QuickViewHolder(R.layout.footer_view, parent) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt index 0bd4db1bb..baec8974b 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt @@ -8,7 +8,7 @@ import androidx.recyclerview.widget.RecyclerView import com.chad.baserecyclerviewadapterhelper.R import com.chad.library.adapter.base.BaseSingleItemAdapter -class HeaderAdapter: BaseSingleItemAdapter() { +class HeaderAdapter: BaseSingleItemAdapter(null) { class VH(view: View): RecyclerView.ViewHolder(view) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt index 62d11f259..76131dfc8 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt @@ -9,7 +9,7 @@ import com.chad.baserecyclerviewadapterhelper.R import com.chad.library.adapter.base.BaseSingleItemAdapter import com.chad.library.adapter.base.fullspan.FullSpanAdapterType -class HomeTopHeaderAdapter : BaseSingleItemAdapter(), FullSpanAdapterType { +class HomeTopHeaderAdapter : BaseSingleItemAdapter(null), FullSpanAdapterType { companion object { val HEAD_VIEWTYPE = 0x10000556 @@ -21,8 +21,7 @@ class HomeTopHeaderAdapter : BaseSingleItemAdapter return VH(LayoutInflater.from(parent.context).inflate(R.layout.top_view, parent, false)) } - override fun onBindViewHolder(holder: VH, item: Any?) { - } + override fun onBindViewHolder(holder: VH, item: Any?) { } override fun getItemViewType(position: Int, list: List): Int { return HEAD_VIEWTYPE diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore/adapter/RecyclerViewAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore/adapter/RecyclerViewAdapter.kt index d401b2452..d5494debf 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore/adapter/RecyclerViewAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore/adapter/RecyclerViewAdapter.kt @@ -34,7 +34,7 @@ class RecyclerViewAdapter : BaseQuickAdapter() { return VH(parent) } - protected override fun onBindViewHolder(holder: VH, position: Int, item: Status?) { + protected override fun onBindViewHolder(holder: VH, position: Int, item: Status) { when (holder.layoutPosition % 3) { 0 -> holder.viewBinding.img.setImageResource(R.mipmap.animation_img1) 1 -> holder.viewBinding.img.setImageResource(R.mipmap.animation_img2) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/scene/adapter/GroupAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/scene/adapter/GroupAdapter.kt index 9036f0f48..6021262c8 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/scene/adapter/GroupAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/scene/adapter/GroupAdapter.kt @@ -28,7 +28,7 @@ class GroupAdapter : BaseQuickAdapter(){ return VH(parent) } - override fun onBindViewHolder(holder: VH, position: Int, item: GroupDemoEntity.Group?) { + override fun onBindViewHolder(holder: VH, position: Int, item: GroupDemoEntity.Group) { if (item == null) return holder.binding.tvTitle.text = item.title diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemAdapter.kt index 19ec4ce2e..2a2508dd3 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemAdapter.kt @@ -31,12 +31,12 @@ abstract class BaseMultiItemAdapter(items: List = emptyList()) : } } - override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int, item: T?) { + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int, item: T) { findListener(holder)?.onBind(holder, position, item) } override fun onBindViewHolder( - holder: RecyclerView.ViewHolder, position: Int, item: T?, payloads: List + holder: RecyclerView.ViewHolder, position: Int, item: T, payloads: List ) { if (payloads.isEmpty()) { onBindViewHolder(holder, position, item) diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt index ab84db810..94b1a2b0c 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt @@ -148,7 +148,7 @@ abstract class BaseQuickAdapter( * @param holder A fully initialized helper. * @param item The item that needs to be displayed. */ - protected abstract fun onBindViewHolder(holder: VH, position: Int, item: T?) + protected abstract fun onBindViewHolder(holder: VH, position: Int, item: T) /** * Optional implementation this method and use the helper to adapt the view to the given item. @@ -162,7 +162,7 @@ abstract class BaseQuickAdapter( * @param item The item that needs to be displayed. * @param payloads payload info. */ - protected open fun onBindViewHolder(holder: VH, position: Int, item: T?, payloads: List) { + protected open fun onBindViewHolder(holder: VH, position: Int, item: T, payloads: List) { onBindViewHolder(holder, position, item) } @@ -397,13 +397,13 @@ abstract class BaseQuickAdapter( /** * Get the data item associated with the specified position in the data set. - * 获取与数据集中指定位置的数据项。如果未找到数据,则返回 null + * 获取与数据集中指定位置的数据项。 * * @param position Position of the item whose data we want within the adapter's * data set. * @return The data at the specified position. */ - fun getItem(@IntRange(from = 0) position: Int): T? = items.getOrNull(position) + open fun getItem(@IntRange(from = 0) position: Int): T = items[position] /** * 获取对应首个匹配的 item 数据的索引。如果返回 -1,表示不存在 diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt index 4ce7f80bb..e4220bfa1 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt @@ -10,34 +10,38 @@ import androidx.recyclerview.widget.RecyclerView * @param VH viewHolder类型 type of the viewHolder * @property mItem 数据 data */ -abstract class BaseSingleItemAdapter(private var mItem: T? = null) : - BaseQuickAdapter() { +abstract class BaseSingleItemAdapter(private var mItem:T) : + BaseQuickAdapter() { - protected abstract fun onBindViewHolder(holder: VH, item: T?) + protected abstract fun onBindViewHolder(holder: VH, item: T) - open fun onBindViewHolder(holder: VH, item: T?, payloads: List) { + open fun onBindViewHolder(holder: VH, item: T, payloads: List) { onBindViewHolder(holder, item) } - final override fun onBindViewHolder(holder: VH, position: Int, item: Any?) { + final override fun onBindViewHolder(holder: VH, position: Int, item: T) { onBindViewHolder(holder, mItem) } - final override fun onBindViewHolder(holder: VH, position: Int, item: Any?, payloads: List) { + final override fun onBindViewHolder(holder: VH, position: Int, item: T, payloads: List) { onBindViewHolder(holder, mItem, payloads) } - final override fun getItemCount(items: List): Int { + final override fun getItemCount(items: List): Int { return 1 } + override fun getItem(position: Int): T { + return mItem + } + /** * 设置 item 数据(payload 方式) * * @param t * @param payload */ - fun setItem(t: T?, payload: Any?) { + fun setItem(t: T, payload: Any?) { mItem = t notifyItemChanged(0, payload) } @@ -45,34 +49,34 @@ abstract class BaseSingleItemAdapter(private va /** * 获取/设置 item 数据 */ - var item: T? + var item: T get() = mItem set(value) { mItem = value notifyItemChanged(0) } - override fun submitList(list: List?) { + override fun submitList(list: List?) { throw RuntimeException("Please use setItem()") } - override fun add(data: Any?) { + override fun add(data: T) { throw RuntimeException("Please use setItem()") } - override fun add(position: Int, data: Any?) { + override fun add(position: Int, data: T) { throw RuntimeException("Please use setItem()") } - override fun addAll(collection: Collection) { + override fun addAll(collection: Collection) { throw RuntimeException("Please use setItem()") } - override fun addAll(position: Int, collection: Collection) { + override fun addAll(position: Int, collection: Collection) { throw RuntimeException("Please use setItem()") } - override fun remove(data: Any?) { + override fun remove(data: T) { throw RuntimeException("Please use setItem()") } @@ -80,7 +84,7 @@ abstract class BaseSingleItemAdapter(private va throw RuntimeException("Please use setItem()") } - override fun set(position: Int, data: Any?) { + override fun set(position: Int, data: T) { throw RuntimeException("Please use setItem()") } } \ No newline at end of file From 95e5910618b0a43aefbe326bc7d68c22e17c8be1 Mon Sep 17 00:00:00 2001 From: ultranity Date: Sun, 3 Sep 2023 23:21:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=20=E6=8F=90=E4=BE=9B=E9=BB=98=E8=AE=A4item?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E7=9A=84=20SimpleSingleItemAdapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../headerfooter/adapter/FooterAdapter.kt | 12 ++++++++---- .../headerfooter/adapter/HeaderAdapter.kt | 10 ++++------ .../home/adapter/HomeTopHeaderAdapter.kt | 7 ++++--- .../adapter/base/BaseSingleItemAdapter.kt | 19 ++++++++++++++++++- 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/FooterAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/FooterAdapter.kt index 5f503e180..7055e3bc1 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/FooterAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/FooterAdapter.kt @@ -3,18 +3,22 @@ package com.chad.baserecyclerviewadapterhelper.activity.headerfooter.adapter import android.content.Context import android.view.ViewGroup import com.chad.baserecyclerviewadapterhelper.R -import com.chad.library.adapter.base.BaseSingleItemAdapter +import com.chad.library.adapter.base.SimpleSingleItemAdapter import com.chad.library.adapter.base.viewholder.QuickViewHolder class FooterAdapter( private val isDelete: Boolean -) : BaseSingleItemAdapter(null) { +) : SimpleSingleItemAdapter() { - override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): QuickViewHolder { + override fun onCreateViewHolder( + context: Context, + parent: ViewGroup, + viewType: Int + ): QuickViewHolder { return QuickViewHolder(R.layout.footer_view, parent) } - override fun onBindViewHolder(holder: QuickViewHolder, item: Any?) { + override fun onBindViewHolder(holder: QuickViewHolder) { if (isDelete) { holder.setImageResource(R.id.iv, R.mipmap.rm_icon) } diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt index baec8974b..0fa691271 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt @@ -6,18 +6,16 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.chad.baserecyclerviewadapterhelper.R -import com.chad.library.adapter.base.BaseSingleItemAdapter +import com.chad.library.adapter.base.SimpleSingleItemAdapter -class HeaderAdapter: BaseSingleItemAdapter(null) { +class HeaderAdapter : SimpleSingleItemAdapter() { - class VH(view: View): RecyclerView.ViewHolder(view) + class VH(view: View) : RecyclerView.ViewHolder(view) override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { val view = LayoutInflater.from(parent.context).inflate(R.layout.head_view, parent, false) return VH(view) } - override fun onBindViewHolder(holder: VH, item: Any?) { - - } + override fun onBindViewHolder(holder: VH) {} } \ No newline at end of file diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt index 76131dfc8..81ce31074 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt @@ -6,10 +6,11 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.chad.baserecyclerviewadapterhelper.R -import com.chad.library.adapter.base.BaseSingleItemAdapter +import com.chad.library.adapter.base.SimpleSingleItemAdapter import com.chad.library.adapter.base.fullspan.FullSpanAdapterType -class HomeTopHeaderAdapter : BaseSingleItemAdapter(null), FullSpanAdapterType { +class HomeTopHeaderAdapter : SimpleSingleItemAdapter(), + FullSpanAdapterType { companion object { val HEAD_VIEWTYPE = 0x10000556 @@ -21,7 +22,7 @@ class HomeTopHeaderAdapter : BaseSingleItemAdapter): Int { return HEAD_VIEWTYPE diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt index e4220bfa1..5ebbccdd1 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt @@ -2,6 +2,23 @@ package com.chad.library.adapter.base import androidx.recyclerview.widget.RecyclerView +abstract class SimpleSingleItemAdapter() : + BaseSingleItemAdapter(null) { + + protected abstract fun onBindViewHolder(holder: VH) + final override fun onBindViewHolder(holder: VH, item: Any?) { + onBindViewHolder(holder) + } + + open fun onBindViewHolder(holder: VH, payloads: List) { + onBindViewHolder(holder) + } + + final override fun onBindViewHolder(holder: VH, item: Any?, payloads: List) { + onBindViewHolder(holder, payloads) + } +} + /** * Adapter for single item * 只有单个/一个 item 情况下的 Adapter @@ -10,7 +27,7 @@ import androidx.recyclerview.widget.RecyclerView * @param VH viewHolder类型 type of the viewHolder * @property mItem 数据 data */ -abstract class BaseSingleItemAdapter(private var mItem:T) : +abstract class BaseSingleItemAdapter(private var mItem: T) : BaseQuickAdapter() { protected abstract fun onBindViewHolder(holder: VH, item: T) From 067b39593d2784f3665ece26ad57fde70d01850d Mon Sep 17 00:00:00 2001 From: ultranity Date: Sun, 3 Sep 2023 23:25:31 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=B8=BASimpleSingleItemAdapter=20?= =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=BB=98=E8=AE=A4=E4=B8=BA=E7=A9=BA=E7=9A=84?= =?UTF-8?q?=20onBindViewHolder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/headerfooter/adapter/HeaderAdapter.kt | 2 -- .../activity/home/adapter/HomeTopHeaderAdapter.kt | 2 -- .../java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt index 0fa691271..4a03e0e93 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/adapter/HeaderAdapter.kt @@ -16,6 +16,4 @@ class HeaderAdapter : SimpleSingleItemAdapter() { val view = LayoutInflater.from(parent.context).inflate(R.layout.head_view, parent, false) return VH(view) } - - override fun onBindViewHolder(holder: VH) {} } \ No newline at end of file diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt index 81ce31074..0b2d48594 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeTopHeaderAdapter.kt @@ -22,8 +22,6 @@ class HomeTopHeaderAdapter : SimpleSingleItemAdapter(), return VH(LayoutInflater.from(parent.context).inflate(R.layout.top_view, parent, false)) } - override fun onBindViewHolder(holder: VH) {} - override fun getItemViewType(position: Int, list: List): Int { return HEAD_VIEWTYPE } diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt index 5ebbccdd1..8f2c8615e 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseSingleItemAdapter.kt @@ -5,7 +5,7 @@ import androidx.recyclerview.widget.RecyclerView abstract class SimpleSingleItemAdapter() : BaseSingleItemAdapter(null) { - protected abstract fun onBindViewHolder(holder: VH) + protected open fun onBindViewHolder(holder: VH) {} final override fun onBindViewHolder(holder: VH, item: Any?) { onBindViewHolder(holder) } From f33b8f8ee01cf302cc207e0c44321c234b361ee1 Mon Sep 17 00:00:00 2001 From: ultranity Date: Sun, 3 Sep 2023 23:43:09 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E4=B8=8D=E5=BF=85?= =?UTF-8?q?=E8=A6=81=E7=9A=84=20null=20check=20&&=20BaseMultiItemAdapter?= =?UTF-8?q?=20=E4=BB=85=E5=9C=A8=E6=98=8E=E7=A1=AE=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E5=9C=BA=E6=99=AF=E4=B8=8B=E5=85=81=E8=AE=B8item?= =?UTF-8?q?=E5=8F=AF=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/databinding/adapter/DataBindingAdapter.java | 5 +---- .../activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt | 2 -- .../activity/home/adapter/HomeAdapter.kt | 7 ++----- .../activity/scene/adapter/GroupAdapter.kt | 2 -- .../com/chad/library/adapter/base/BaseMultiItemAdapter.kt | 4 ++-- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/databinding/adapter/DataBindingAdapter.java b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/databinding/adapter/DataBindingAdapter.java index 2fa33b856..da4fb113d 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/databinding/adapter/DataBindingAdapter.java +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/databinding/adapter/DataBindingAdapter.java @@ -4,7 +4,6 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import com.chad.baserecyclerviewadapterhelper.R; import com.chad.baserecyclerviewadapterhelper.databinding.ItemMovieBinding; @@ -30,9 +29,7 @@ protected DataBindingHolder onCreateViewHolder(@NonNull Contex } @Override - protected void onBindViewHolder(@NonNull DataBindingHolder holder, int position, @Nullable Movie item) { - if (item == null) return; - + protected void onBindViewHolder(@NonNull DataBindingHolder holder, int position, @NonNull Movie item) { // 获取 Binding ItemMovieBinding binding = holder.getBinding(); binding.setMovie(item); diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt index 07ed5e5fe..215f4d071 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/adapter/DiffDragAndSwipeAdapter.kt @@ -23,8 +23,6 @@ class DiffDragAndSwipeAdapter : override fun onBindViewHolder( holder: QuickViewHolder, position: Int, item: DiffEntity ) { - if (item == null) return - holder.setText(R.id.tweetName, item.title) .setText(R.id.tweetText, item.content) .setText(R.id.tweetDate, item.date) diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeAdapter.kt index 6dddfacab..4e1404d14 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/adapter/HomeAdapter.kt @@ -27,8 +27,7 @@ class HomeAdapter(data: List) : BaseMultiItemAdapter(dat return ItemVH(viewBinding) } - override fun onBind(holder: ItemVH, position: Int, item: HomeEntity?) { - if (item == null) return + override fun onBind(holder: ItemVH, position: Int, item: HomeEntity) { holder.viewBinding.textView.text = item.name holder.viewBinding.icon.setImageResource(item.imageResource) } @@ -39,9 +38,7 @@ class HomeAdapter(data: List) : BaseMultiItemAdapter(dat return HeaderVH(viewBinding) } - override fun onBind(holder: HeaderVH, position: Int, item: HomeEntity?) { - if (item == null) return - + override fun onBind(holder: HeaderVH, position: Int, item: HomeEntity) { holder.viewBinding.more.visibility = View.GONE holder.viewBinding.header.text = item.sectionTitle } diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/scene/adapter/GroupAdapter.kt b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/scene/adapter/GroupAdapter.kt index 6021262c8..bbeabdf6f 100644 --- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/scene/adapter/GroupAdapter.kt +++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/scene/adapter/GroupAdapter.kt @@ -29,8 +29,6 @@ class GroupAdapter : BaseQuickAdapter(){ } override fun onBindViewHolder(holder: VH, position: Int, item: GroupDemoEntity.Group) { - if (item == null) return - holder.binding.tvTitle.text = item.title holder.binding.tvContent.text = item.content diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemAdapter.kt index 2a2508dd3..1fc070dcd 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemAdapter.kt @@ -115,9 +115,9 @@ abstract class BaseMultiItemAdapter(items: List = emptyList()) : interface OnMultiItemAdapterListener { fun onCreate(context: Context, parent: ViewGroup, viewType: Int): V - fun onBind(holder: V, position: Int, item: T?) + fun onBind(holder: V, position: Int, item: T) - fun onBind(holder: V, position: Int, item: T?, payloads: List) { + fun onBind(holder: V, position: Int, item: T, payloads: List) { onBind(holder, position, item) }