Как я могу получить доступ к элементам onBindViewHolder данного адаптера в адаптере другого класса? - PullRequest
0 голосов
/ 09 марта 2020

Я бы хотел получить доступ к DayOfWeek в onBindViewHolder ниже в следующем классе, ChildViewHolder, чтобы я мог использовать его в операторе if, как показано в ChildRecyclerAdapter.

class ParentRecyclerAdapter(private var parentArrayList: ArrayList<String>?, private var context: Context, private var mTableFeed: TableFeedJava?
) :  RecyclerView.Adapter<ParentRecyclerAdapter.ParentViewHolder>() {


 override fun onBindViewHolder(holder: ParentViewHolder, position: Int) {
        holder.DayOfWeek.text = this.parentArrayList!![position]
}
 override fun getItemCount(): Int {
        return parentArrayList!!.size
    }

    inner class ParentViewHolder (itemView: View) : RecyclerView.ViewHolder(itemView)

    {
        internal var DayOfWeek: TextView = itemView.findViewById(R.id.dayOfWeek)
        internal var ChildRV: RecyclerView = itemView.findViewById(R.id.ChildRecycler)
}

Это ChildRecyclerAdapter. Мне нужен DayOfWeek от Родителя, чтобы использовать его в этом классе как

class ChildRecyclerAdapter(
    private var time: ArrayList<String>,
    var context: Context,
    private val parentArrayList: ArrayList<String>? = null


) :
override fun onBindViewHolder(holder: ChildViewHolder, position: Int) {

                holder.timeOfDay.text = time[position]
                mTableFeed = TableFeedJava(context,mLectures)
                holder.childofChildRV.adapter = mTableFeed

//THIS IS WHERE I PLAN ON USING THE IMPORTED 'DayOfWeek' AS SEEN ON 'holder.timeOfDay.text'
               for (i in mTimeSpinner!!.indices){
                   if(holder.timeOfDay.text == mTimeSpinner!![i]){
                       holder.childofChildRV.visibility = View.VISIBLE
                   }else{
                       holder.childofChildRV.visibility = View.INVISIBLE
                   }
               }


Я знаю, что код находится в Kotlin, но я также могу принять Java ответов.

1 Ответ

0 голосов
/ 09 марта 2020

Почему бы вам просто не передать объект в

private var time: ArrayList<YourClass> 

вместо

private var time: ArrayList<String>

Мне кажется, самое простое решение

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