@sitev_ru
sitev.ru - мой блог ...

Как получить объект соседнего активити?

Создаю несколько активити, а объекты на них храню в классе, порождённом от класса приложения в виде статических переменных:

public class AppGlobal extends Application {
    static LoginActivity loginActivity = null;
    static MainActivity mainActivity = null;
    static FuncActivity funcActivity = null;
}


Теперь я могу, например, из mainActivity обращаться к loginActivity так:

AppGlobal.loginActivity

Такой подход был временный во время изучения программирования под Андроид. И возникает вопрос: правильный ли это подход? Наверняка, можно работать без такого глобального класса и статических переменных?
  • Вопрос задан
  • 376 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Copperfield
Android dude
Это худшее, что можно было сделать.
Ответ написан
AndriyTheProgrammer
@AndriyTheProgrammer
Senior bugs developer
Если у вас возникает необходимость из одной Activity вызывать методы другой - это уже "запашок" от кода. В идеале Activity должна отвечать лишь за визуальное представление приложения в рамках себя и только себя, а не дергать остальные Activity. В один момент времени есть лишь одна "живая" Activity и как нибудь управлять другими - очень плохая идея.
Есть возможность создать логику похожую на ту которую вы описали выше с помощью фрагментов. В таком случае будет одна Activity (аналог вашего Application) которая будет содержать в себе фрагменты в виде обычных переменных (не статических!), тоесть методы которых вы можете вызывать без всяких угрызений совести.
Фрагменты это вообще очень полезный и мощный инструмент, вряд ли вас возьмут даже Junior-ом если вы не будете уметь ими пользоваться. Можете считать это пинком в том направлении куда надо гуглить
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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