如何使用 kotlin 显示在 recyclerview 中选择的单个项目

Dav*_*oel 5 android kotlin

在使用 kotlin 时,我们如何标记单个项目被选中Recyclerview。当我选择一个项目并单击其他项目时,应取消选择之前选择的项目。这是我在 kotlin 中的适配器类:..

 class ListAdapter(var context: Context, var list: ArrayList<ListModel>) : RecyclerView.Adapter<ListAdapter.MyViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): MyViewHolder {
        val v = LayoutInflater.from(parent?.context).inflate(R.layout.list_item, parent, false)
        return MyViewHolder(v)
    }

    override fun getItemCount(): Int {
        return list.size

    }

    override fun onBindViewHolder(holder: MyViewHolder?, position: Int) {
        holder?.bindItems(list[position])
    }

    class MyViewHolder(view: View) : RecyclerView.ViewHolder(view){

        fun bindItems(items: ListModel) {
            itemView.txt_que.text = items.que
            itemView.txt_ans.text = items.ans
            itemView.txt_sr_no.text = items.srNo
        }
}`
Run Code Online (Sandbox Code Playgroud)

小智 2

        if (mPosition == position)
        {
            //set selected here
        } else
        {
            //set unselected here
        }

        holder.parentView.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                mPosition = position;
                notifyDataSetChanged();
            }
        });
Run Code Online (Sandbox Code Playgroud)

在 onBindViewholder 中编写上述代码,并在适配器类中将 mPosition 声明为全局 int 变量