android:onClick
, как вы его используете, древний . Ваш второй раз, когда я видел это сегодня, после того, как я не видел его годами. В частности, android:onClick
направляет событие click методу, который вы реализуете на Activity
. Это не особенно гибко.
И, в вашем случае, если у вас есть N кнопок, каждая из этих N кнопок будет вызывать один и тот же метод. В то время как View
передается в ваш метод в качестве параметра, это не обязательно помогает определить, какая строка в вашем RecyclerView
была нажата.
Я рекомендую удалить android:onClick
. Вместо этого в onBindViewHolder()
, как часть вашей работы, позвоните setOnItemClickListener()
на Button
. Используемое там OnClickListener
(или лямбда-выражение) может ссылаться на параметр position
, переданный в onBindViewHolder()
, если вы сделаете position
равным final
. Таким образом, ваш обработчик кликов имеет прямой доступ к position
, и оттуда вы можете узнать, какому конкретному элементу в списке соответствует position
.