PopupWindow). В классе SuperPopupWindow есть перезаписываемый метод onCreate(), который вызывается в конце блока init{}. А в методе onBindViewHolder(в классе MailMessagesAdapter для RecycleView) создаётся MessageViewPopup, в который передаётся id сообщения, которое надо отобразить(сообщение отображается в onCreate от класса SuperPopupWindow). Проблема в том, что если вывести id в методе onBindViewHolder, то ID будет правильный, но в MessageViewPopup передаётся id = 0. Пробовал ставить изначально id = -1(в конструкторе MessageViewPopup), но всё равно id = 0. В чём может быть проблема? Код с коммантариями: https://pastebin.com/0DieYCJq
Подозреваю, что это потому, что override fun onCreate() вызывается из базового класса раньше того, как станут доступны параметры наследника. Непонятно, зачем нужен onCreate, если можно обойтись init { ... } в наследнике и всё будет точно вовремя доступно.
О. По поводу init - спасибо. Думал, что оно перезапишет предыдущий
Неа. Он у всех свой.
Да. Ты был прав. Спасибо
Обсуждают сегодня