не удалось проверить, если установлено больше, чем количество переключателей - PullRequest
0 голосов
/ 15 апреля 2020

Я сделал отображение переключателя, как показано ниже

enter image description here

, когда я пытаюсь проверить больше, чем количество переключателей. Мой переключатель не может быть проверен, но в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...