我有一个简单的应用程序,以RecyclerView片段开始,每一行都有RadioButton,但问题是我不能只检查一个单选按钮我需要它,如果我检查一个旧的取消检查自动 这是我的适配器
class StoresAdapter constructor(private val activety: MainActivity, private var listOfData: ArrayList<StoresModeling>,
val listener: ContentListener) : RecyclerView.Adapter<StoresAdapter.ViewHolder>() {
override fun getItemCount(): Int = listOfData.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
//var inf = ViewHolder(LayoutInflater.from(parent!!.context).inflate(R.layout.min_mark_modling, parent, false))
return ViewHolder(LayoutInflater.from(parent!!.context).inflate(R.layout.stores_tick, parent, false),getItemViewType(transition_position))
}
var selectedPosition:Int = 0
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bind(listOfData[position], listener, listOfData)
}
inner class ViewHolder(itemView: View?,position: Int) : RecyclerView.ViewHolder(itemView) {
fun bind(Data: StoresModeling, listener: ContentListener, listOfData: ArrayList<StoresModeling>) {
val dataListin2 = listOfData[adapterPosition]
var titlein = dataListin2.title
var cityin = dataListin2.city
var codein = dataListin2.code
itemView.title.text = titlein
itemView.city.text = cityin
itemView.code.text = codein
/////// my radioButton /////
itemView.RB
}
}
interface ContentListener {
fun onItemClicked(Data: StoresModeling) {
}
}
答案 0 :(得分:0)
很简单。
第1步。使用CheckBox
代替RadioButton
,因为它们无法取消选中,如文档所述
但是,与CheckBox相反,用户在检查后无法取消选中单选按钮。
第2步。在您的课程var isChecked: Boolean = false
上创建属性StoresModeling
第3步。删除ViewHolder
的所有内容(你使用它错了),只写它
class ViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView)
并在StoresModeling
onBindViewHolder
第4步。更改onBindViewHolder
的{{1}}内部'状态,取消选中所有其他人,并按照以下代码通知适配器:
isChecked