Я сделал отображение переключателя, как показано ниже
, когда я пытаюсь проверить больше, чем количество переключателей. Мой переключатель не может быть проверен, но в logcat я отображаю текст переключателя, который я выбрал
это xml из списка полов
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp">
<RadioButton
android:id="@+id/rdgender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/yourbuttonbackground"
android:button="@android:color/transparent"
android:padding="5dp"
android:text="testestestestes" />
</LinearLayout>
это мой адаптер пола
class Genderadapter(internal val context: Context, internal var genderlist:ArrayList<Getgender>, internal var genderspek: ArrayList<Gender>):RecyclerView.Adapter<Genderadapter.myholder>(){
var lastSelectedPosition = -1
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): myholder {
return myholder(
LayoutInflater.from(context).inflate(
R.layout.list_gender,
parent,
false
)
)
}
override fun getItemCount(): Int {
return if (genderspek != null) {
genderspek!!.size
} else 0
}
override fun onBindViewHolder(holder: myholder, position: Int) {
holder.rdgender.text = genderspek!![position].nama_nilai_spesifikasi
holder.rdgender.setChecked(lastSelectedPosition == position)
}
inner class myholder(itemView: View):RecyclerView.ViewHolder(itemView){
internal var rdgender : RadioButton
init {
rdgender = itemView.findViewById(R.id.rdgender) as RadioButton
rdgender.setOnClickListener(View.OnClickListener{
lastSelectedPosition = adapterPosition
Log.d("gender", rdgender.text.toString())
Log.d("adapterpos", adapterPosition.toString())
Log.d("index", lastSelectedPosition.toString())
notifyItemRangeChanged(0, genderspek.size)
})
}
}
}
и это результат, если приведенный выше код выполняется https://youtu.be/0gdg21mfC4U