Как отправить данные из фрагмента в адаптер?

Имеется CheckBox во фрагменте, и с помощью него у меня должен изменяться цвет объекта в адаптере. Как я понял, сделать это можно только через отправку данных в с фрагмента в адаптер. То есть если у CheckBox значение isChecked, то по нажатию на кнопку "Сохранить" в адаптере изменяется цвет объекта.

Код фрагмента:

class Fragment: Fragment() {   

private lateinit var mDBViewModel: DBViewModel

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
   
    val view = inflater.inflate(R.layout.fragment1, container, false)

   //Это кнопка сохранения записи во фрагменте
    view.add_button.setOnClickListener {
        insertDataToDataBase()
    }

    return view
}

private fun insertDataToDataBase() {
        val Name = addName_ed.text.toString()
          
        //Проверка на символы в EditText
        if (inputCheck(Name)){

            //Создание записи
            val dB = DB(0, firstName)

            //Добавление записи в БД
            mDViewModel.addDB(db)
            Toast.makeText(requireContext(),"Запись создана!", Toast.LENGTH_LONG).show()

            if (CheckBox.isChecked){
            //Под моим пониманием, именно здесь должна происходить проверка на отправку данных при нажатии на кнопку Сохранить
               
            }
          findNavController().navigate(R.id.action_Fragment_to_listFragment)
        }
        else{
            Toast.makeText(requireContext(), "Пожалуйста, заполните строку заголовка.", Toast.LENGTH_SHORT).show()
        }
    }
}

Код адаптера:

class ListAdapter(private var mDBViewModel:DBViewModel): RecyclerView.Adapter<ListAdapter.MyViewHolder>() {
  
    private var dBList = emptyList<DB>()

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

    }

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

    override fun getItemCount(): Int {
      return DBList.size
    }

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        val currentItem = DBList[position]

        //Здесь, опять же, под моим пониманием должен происходить прием отправленных данных         

        holder.itemView.z_txt.text = currentItem.Name  
      
    }

    fun setData(db: List<DB>){
        this.DBList = db
        notifyDataSetChanged()
    }
}

Ответы (0 шт):