kotlin:单选按钮单一检查控制

时间:2018-06-05 14:36:12

标签: android android-recyclerview kotlin adapter

我有一个简单的应用程序,以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) {


    }


}

1 个答案:

答案 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