при заполнении? Вроде бы все правильно делаю, может кто-то сталкивался? Единственный момент, он определяется в классе ViewHolder.
Потому что нет контекста очевидно
this не указывает?
This указывает на this, а это явно не контекст
This это viewholder
Лучше v?.context?.let { context -> Toast.makeText(context, "Привет", Toast.LENGTH_SHORT).show() }
Использование сахара котлина где он абсолютно не нужен бессмысленно, когда есть requireContext который всегда возвращает ноннал
И проверка на нулл у вью? Это как же вы собираетесь создать вьюхолдер без вью? Если у него единственный конструктор который только вью и принимает?
requireContext Там не сработал почему-то. Попробовал так -> Toast.makeText(itemView.context, "Привет", Toast.LENGTH_SHORT).show(), ошибка пропала, но на нажатие не реагирует
Ну вот тут тогда уже стоит использовать ?
Если так не работает, то лучше делегируйте листенер в активити/фрагмент, в котором этот адаптер. Через интерфейс или колбэк.
А requireContext -- чей метод? Он есть у ViewHolder? Или у самой View?
У фрагмента
Ну и видимо у активити
Я этот Адаптер как отдельный класс указал, в том же пакете. Имеет значение?
У активити нет такого, т.к. контекст у активити есть всегда
Возможно
Круто, а тут адаптер, в котором вьюхолдер, которые вне фрагмента или активити
Адаптер итак должен быть отдельным классом. Всегда. В активити/фрагменте вы же инстанциируете его.
Ну получи с вьюхи, itemView.context
Обсуждают сегодня