【发布时间】:2020-11-25 19:35:33
【问题描述】:
我设法在recycler view 和checkboxes 中显示存储在房间数据库中的项目,我想将选中的项目存储在一个列表中,将选中的项目存储在我使用setOnClickListener 的列表中复选框,如适配器中下面的代码,但是当我单击以显示列表时应用程序停止,或者即使列表显示成功,有时当我单击项目的复选框时它也会停止(有关当我删除侦听器时显示列表的信息好吧,我可以点击checkboxes,一切正常,但问题是当我添加监听器来存储选中的项目时)。
class Adapter (val selectedFluxs : MutableList<Flux>) : RecyclerView.Adapter<Adapter.VH>(
) {
class VH(itemView: View) : RecyclerView.ViewHolder(itemView){
lateinit var feed : Flux
}
var allFluxs : List<Flux> = listOf()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
val v = LayoutInflater
.from(parent.getContext())
.inflate(R.layout.item_layout, parent, false)
val holder = VH( v )
v.check.setOnClickListener( ) {
// it as CheckBox
if( v.check.isChecked ){
selectedFluxs.add ( holder.feed )
}else{
selectedFluxs.remove( holder.feed )
}
}
return holder
}
override fun getItemCount(): Int {
return allFluxs.size
}
fun setFlux( allFlux : List<Flux> ) {
this.allFluxs = allFlux
notifyDataSetChanged()
}
override fun onBindViewHolder(holder: VH, position: Int) {
holder.itemView.apply {
Source.text = allFluxs[position].source
Tag.text = allFluxs[position].tag
Url.text = allFluxs[position].adr
check.isChecked =
holder.feed in selectedFluxs
}
}
}
【问题讨论】:
标签: android kotlin android-recyclerview