【发布时间】:2020-12-14 03:39:15
【问题描述】:
我有一个功能正常的 RecyclerView,它可以很好地处理我通过 ListAdapter 提供的给定数据,如下所示。我现在想要的是向我的列表项添加额外的数据。
class IngredientAdapter(
private val ingredientClickListener: IngredientClickListener
) : ListAdapter<Ingredient, RecyclerView.ViewHolder>(EventDiffCallback()) {
private val adapterScope = CoroutineScope(Dispatchers.Default)
fun submitIngredientsList(list: List<Ingredient>?) {
adapterScope.launch {
withContext(Dispatchers.Main) {
submitList(list)
}
}
}
我不知道如何正确地做到这一点,或者 RecyclerViews 是否甚至能够做到这一点。我能看到的唯一方法是将两个数据类(Ingredient 加上新的)合并在一起,并将它们作为列表一起提交给适配器,但这似乎很混乱,我正在寻找更好的方法。
所以我的问题是:如何在不将数据与我已有的数据合并的情况下将数据输入我的列表项?就我而言,RecyclerView 是错误的选择吗?
提前致谢!
【问题讨论】:
-
当你说要添加额外的数据时,你指的是什么类型的数据?可以用 View.tag 添加吗?
-
感谢您的贡献!我要添加的数据与已经属于适配器的数据类似。它是存储在房间数据库中的数据,我通常通过视图模型访问。我对 setTag 了解不多(我可以从布局文件中检索标签吗?)但我想到的是通过在我的 Viewholder 上调用 holder.binding.mTextField = myData 来在 onBindViewHolder() 中添加数据。我只是不知道这是否是正确的方法。
标签: android kotlin android-recyclerview