@amimamoya

Как запустить Activity не из Activity?

Знаю, аналогичный вопрос с ответом есть здесь, на хабре, и ещё парочка на просторах интернета, но они не работаю для меня, я столкнулся с немного другой ситуацией...
У меня в MainActivity есть ListView, для него создан собственный адаптер, а из этого адаптера мне нужно запустить другое активити, то есть по нажатию кнопки из ListView. Многими способами я пытался получить первый аргумент для конструктора Intent, но всегда получал подобную ошибку: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference.
Может кто подсказать способ запустить другой активити? Или можно как-то обработать нажатие кнопки из ListView не из адаптера, а MainActivity? Просто там же если попытаться поставить слушатель для кнопки из ListView, то тоже выдаст ошибку, что это ссылка на нулевой объект.
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Во-первых, не надо использовать ListView, он устарел. Используй RecyclerView.
Во-вторых, запуск активити из адаптера это неправильно, нарушается SRP. Нужно установить слушателя и по коллбеку открывать активити.
В-третьих, скорее всего, тебе не нужна новая активити, нужно открывать новый экран с помощью фрагмента(если, конечно, ты не вызываешь стороннее приложение).
В-четвёртых, "такая же нога и не болит", то есть как мы должны догадаться о твоих "многих способах"?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы