2013-05-23 2 views
0

Я работаю с кодовой базой, содержащей несколько (10+) видов деятельности. Каждый класс Activity имеет возможность запускать все другие действия в проекте. В коде это выглядит как startActivityA(), startActivityB() и т. Д. Таким образом, в коде много дублирования, а также зависимостей.Переключение между действиями без создания зависимостей

Мой вопрос: что-то не так с созданием класса (возможно, даже с Activity), которое действует как навигационный контроллер для всех других видов деятельности? Поэтому, когда Activity A хочет запустить Activity B, он может вызвать этот класс (возможно, передав строку «B»), а затем класс THAT запустит Activity. Активность A & B больше не будет зависеть друг от друга, и кода будет намного меньше.

Спасибо!

+0

http://developer.android.com/ дизайн/шаблоны/navigation.html. Используйте панель действий. Проверьте ссылку – Raghunandan

+0

, это почти похоже на то, что вы должны либо поставить эти пусковые установки активности в «меню», либо «панель действий». Однако без небольшого лучшего понимания того, что вы пытаетесь выполнить, трудно сказать. Кроме того, если это так, то вы также хотите посмотреть на «фрагменты» – IrishWhiskey

+0

В проекте есть сделанный на заказ ActionBar, а не стандартный из SDK. Поскольку на каждом экране есть выпадающее меню, каждый экран должен иметь возможность перейти на каждый другой экран приложения. Когда вы нажимаете элемент в раскрывающемся меню, он запрашивает текущую активность для переключения на новое действие. –

ответ

1

Возможно, более простым способом достижения ваших целей может быть только использование Intent Flags. Вы можете использовать флаг Intent.FLAG_ACTIVITY_REORDER_TO_FRONT, так что если Activity уже находится в стеке, то новый экземпляр не будет создан. Там не будет каких-либо зависимостей или избыточности с этим

Intent Flags

Я предполагаю, что вы знаете, как установить Flags в Intent но если не

intent = new Intent(FirstActivity.this, SecondActivity); 
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
    startActivity(intent); 
Смежные вопросы