【发布时间】:2021-01-21 11:43:30
【问题描述】:
我正在尝试通过为每个项目添加项目来创建回收器,我已经通过使用已经存在的列表进行创建并且它工作正常,但不是通过为每个项目添加项目。我就是这样做的。
片段:
layoutManager = LinearLayoutManager(context);
recyclerView?.layoutManager = layoutManager;
recyclerView?.adapter = SubCategoryAdapter();
builder.setView(dialogLayout)
builder.setPositiveButton("Salvar") { _, _ ->
var model: SubCategoryModel = SubCategoryModel(alertTitleEdit.text.toString(),alertDescriptionEdit.text.toString(),null);
adapter.run{
addItems(model)
notifyDataSetChanged()
}
}
builder.show()
适配器
class SubCategoryAdapter() : RecyclerView.Adapter<SubCategoryAdapter.SubCategoryHolder>() {
private var dataM: List<SubCategoryModel> = mutableListOf();
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SubCategoryHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.card_sub_category, parent, false)
return SubCategoryHolder(view);
}
override fun getItemCount(): Int {
return dataM.count();
}
fun addItems(model: SubCategoryModel){
dataM.toMutableList().add(model);
}
override fun onBindViewHolder(holder: SubCategoryHolder, position: Int) {
var res = dataM[position];
holder.title.text = res.Title;
holder.description.text = res.Description
}
class SubCategoryHolder (val view: View) : RecyclerView.ViewHolder(view) {
lateinit var title: TextView;
lateinit var description: TextView;
lateinit var price: TextView;
var v: View = view;
init {
title = v.findViewById(R.id.textViewName);
description = v.findViewById(R.id.description);
price = v.findViewById(R.id.price);
}
}
}
基本上什么都不会发生。
【问题讨论】:
-
希望答案能解决您的问题
标签: android kotlin android-recyclerview adapter