【发布时间】:2020-06-30 10:58:28
【问题描述】:
伙计们,
我目前正在为我的 RecycleView 实现 ListAdapter。在实施时,我遵循了本教程:https://medium.com/simform-engineering/listadapter-a-recyclerview-adapter-extension-5359d13bd879
我目前正在努力解决一个问题: 代码:
adapter = UsersAdapter()
rvUsers.adapter = adapter
userListLiveData.observe(this, Observer {list->
adapter.submitList(list)
})
我不知道我是否正确实现了这个,因为我得到了适配器未连接的错误。
这是我的代码:
class InvoiceListAdapter : ListAdapter<InvoiceModel, InvoiceViewHolder>(InvoiceListDiffCallback()) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): InvoiceViewHolder {
return InvoiceViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.fragment_first, parent, false))
}
override fun onBindViewHolder(holder: InvoiceViewHolder, position: Int) {
holder.bindTo(position)
}
override fun getItemCount(): Int {
val count = super.getItemCount()
return when(count) {
0 -> 1
else -> count
}
}
}
class InvoiceListDiffCallback : DiffUtil.ItemCallback<InvoiceModel>() {
override fun areItemsTheSame(oldItem: InvoiceModel, newItem: InvoiceModel): Boolean {
return oldItem == newItem
}
override fun areContentsTheSame(oldItem: InvoiceModel, newItem: InvoiceModel): Boolean {
return oldItem == newItem
}
}
我的片段:
class FirstFragment : Fragment() {
private lateinit var invoiceAdapter: InvoiceListAdapter
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_first, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val items = mutableListOf<InvoiceModel>()
val layoutManager = LinearLayoutManager(context)
invoiceAdapter = InvoiceListAdapter()
invoiceList.layoutManager = layoutManager
invoiceList.adapter = invoiceAdapter
for (i in 0..40) {
print(i)
}
items.add(
InvoiceModel(
"Einkauf",
"Digital",
"27.05.2020 12:00 Uhr",
"Wasser gekauft",
null,
"Portmonaiee",
true
)
)
invoiceAdapter.submitList(items)
}
}
Has anyone an idea how to fix that the adapter isnt attached?
【问题讨论】:
-
您的应用程序崩溃了吗?
-
不,它只显示一个白色的应用程序,就像什么都没有。
标签: android android-studio kotlin android-recyclerview