активность. В ресайклере у ImageView у всех одинаковый OnClick, тк запускается анимация нажатия. В джава-коде Onclick обрабатываю, и там же хочу запустить новую активность. Активность зависит от нажатой кнопки. Единственный вариант проверки, какая кнопка нажата, придумал получать имя background-а ImageView и через свитч запускать активность. Похоже на лютый говнокод, как лучше сделать?
это не похоже, это оно и есть
Вы смешиваете визуальную часть с бизнес-логикой. Если в activity нужно грузить картинку по названию, то передавайте в функцию название картинки, а не какое-то view из которого как-то нужно выковыривать название.
Мне нужно по нажатию на ImageView просто запускать активность. Проблема была в том, что ImageView генерились из кода, и я только сейчас нагуглил, как там задать у них ID
Если нужно "просто запускать", то какая разница какой там id?
Так от ID зависит, какая активность будет запущена
Ну, можно и так...
Во-первых, у вас startActivity вызывается в каждом case и ещё один раз на выходе. Оставьте вызов на выходе.
Наоборот же, только на выходе вызывается, в кейсах только интент получаю
Я на скриншоте вижу - много их.
А, да, у первых двух забыл убрать, извиняюсь
Почему onClick падает - я 🤷♂, наверное назначен не там и не так. Подозреваю, что в лейауте.
ты в xml устанавливаешь онклик чтоли?
зачем?
id не для этого Если нужно привязать свои данные, то используй tag. А вообще, если приходится извращаться, то что-то однозначно делается не так.
если я правильно понял что ты хочешь сделать, то решается все своими листенерами которые вешаешь на кнопки
Даааа, понял наконец-то, tag помог. Да, я понимаю, что сделал криво, сейчас попробую нормально
Там типа заранее неизвестно число кнопок.
Сейчас попробую, спасибо за помощь!
Обсуждают сегодня