2013-03-28 2 views
0

Я внедрил TabHost. На одной вкладке у меня есть Activity1, которая вызывает Activity2 после нажатия кнопки, которая вызывает Activity3 после нажатия кнопки, которая вызывает Activity1 после нажатия кнопки и т. Д. Никаких функций backstack не требуется, только 1 -> 2 -> 3 -> 1 и т. Д. Все три действия имеют отдельный файл макета.Как реализовать последовательность действий внутри одной вкладки tabhost?

Все работает нормально, за исключением того, что после первого перехода из 1 -> 2 операции захватывают весь экран, а вкладки навсегда невидимы.

Вопрос: Как я могу сохранить эти три действия в пределах зоны вкладок и видимых вкладок? Проблема была здесь неоднократно признана; решение, используемое для ActivityGroups, но они устарели, а Fragments рекомендуются вместо этого. Я видел здесь много примеров, но ничего, что могло бы мне помочь.

  • Могу ли я сохранить свои три активности (Activity1 расширяет активность и т. Д.)?
  • Следует ли добавлять теги фрагментов в файлы макета?
  • Нужно ли мне работать с транзакциями?
  • Должен ли я работать с одним классом фрагментов или тремя?

Не могли бы вы дать мне несколько советов, как мне идти? Мне уже помогли, если вы расскажете, какие классы мне нужно использовать, и какой тип они есть.

Заранее спасибо.

ответ

0

Мне потребовалось более полудня, но, наконец, нашли решение, которое работает. К сожалению, я все еще придерживаюсь устаревших проблем (Activity Group и getLocalActivityManager(). StartActivity (..)).

Снова у меня есть одна вкладка под TabHost и несколько действий, все из которых работают на этой вкладке. Навигация с одного действия на другое происходит с помощью кнопки buttonclick. Решение:

  • все Деятельность работает на вкладке нужно расширить ActivityGroup

  • Всех действия классы должны иметь обработчик кнопки, ссылки на следующую деятельность, как это:

    общественных недействительный onBtnClicked (Просмотреть вид) { Intent intent = new Intent (view.getContext(), NextActivity.class); replaceContentView («NextActivity», намерение); .. }

    общественного недействительными replaceContentView (String ID, Намерение newIntent) { Посмотреть вид = getLocalActivityManager() startActivity (. Идентификация, newIntent addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP)) getDecorView(); this.setContentView (просмотреть); }

Этим язычки остаются видимыми все время, как хотелось бы. Надеюсь, это поможет кому-то.