Кажется, я не могу заставить свой адаптер добавить мой список в RecyclerView

#android #kotlin

Вопрос:

Я хотел бы изначально, чтобы список отображался в моем окне просмотра вторсырья, прежде чем внедрять в него какую-либо функцию редактирования. Однако, что бы я ни делал, список, который я составил, не появится. У меня такое чувство, что я делаю что-то не так с функцией привязки.

Вот мой адаптер

 class WorkoutAdaptor (
    var workouts: List<Workout>
    ) : RecyclerView.Adapter<WorkoutAdaptor.ViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val workoutCardBinding = WorkoutCardBinding.inflate(
            LayoutInflater.from(parent.context), parent, false)

        return ViewHolder(workoutCardBinding)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.bind(workouts[position])
    }

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

    inner class ViewHolder(private val workoutCardBinding: WorkoutCardBinding) :
        RecyclerView.ViewHolder(workoutCardBinding.root) {
        fun bind(workout: Workout) {
            workoutCardBinding.apply {
                tvWorkoutCard
            }
        }
    }
}
 

и вот моя основная деятельность

 class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding



    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        binding.btnNext.setOnClickListener {
            Intent(this, SecondActivity::class.java).also {
                startActivity(it)
            }
        }
//        var workout = intent.getSerializableExtra("EXTRA_WORKOUT")
//        binding.tvWorkoutCard.text = workout.toString()
        var workoutList = mutableListOf(
            Workout("a","d","d","d"),
            Workout("a","d","d","d"),
            Workout("a","d","d","d"),
            Workout("a","d","d","d"),
            Workout("a","d","d","d"),
        )

        val adaptor = WorkoutAdaptor(workoutList)
        binding.recyclerView.adapter = adaptor
        binding.recyclerView.layoutManager = LinearLayoutManager(this)
    }
}
 

Комментарии:

1. Ваша функция привязки вообще ничего не делает. Он просто объявляет вещи без вызова каких-либо функций или свойств.

Ответ №1:

Измените свой метод привязки на этот.

 fun bind(workout: Workout) {
 workoutCardBinding.textview.text = workout.objectName
}