2011-12-21 5 views
0

Мое приложение имеет 4 разных экрана, и я пытаюсь настроить структуру с табуляцией, используя только кнопки. Для простоты я просто позвоню им A, B, C, D.Навигация между различными макетами моего приложения

Прямо сейчас в методе onCreate для каждой операции у меня есть 3 кнопки прослушивания кнопок (в действии A у меня есть слушатели для кнопок B, C, D), которые запускают startActivity, когда нажата соответствующая кнопка.

Проблема возникает, когда я перехожу от A-> B, а затем попытаюсь вернуться B-> A с помощью кнопок, мое приложение выйдет из строя. Я считаю, что это связано с тем, что A остановлен в фоновом режиме, и попытка запустить новый экземпляр программы приводит к сбою программы.

Так что мне было интересно, есть ли способ возобновить работу A без создания нового экземпляра? Я ожидал, что будет какой-то метод resumeActivity(), но он, похоже, не существует.

Спасибо за любую помощь.

+0

Вы можете использовать «ViewFlipper» для отображения видов во время выполнения –

ответ

0

Попробуйте это:

public void onResume() { 
    super.onResume(); 
    // do your stuff here 
} 
+0

Итак, когда я вызываю startActivity(), и активность уже запущена и приостановлена, она перейдет в onResume() вместо onCreate()? – user1109893

0

У вас есть много способов сделать это.

1) Установить LaunchMode вашей деятельности А в SingleInstance

2) Dont вызов Activity A Умышленное, Just Finish B, он будет автоматически показывать А.

3) См this answer и сделайте только один базовый класс и продолжите его в другом месте от A до D и напишите все нажатия кнопки только в базовом классе. (Для упрощения кода)

4) При необходимости Override onResume() деятельности A.

0

Используйте TabActivity
И тогда, если вы не хотите использовать реализацию по умолчанию вкладки, то я думаю, вы должны удалить <TabWidget> из XML и использовать TabHost.setCurrentTab для изменения которой Деятельность, в которой вы находитесь.

0

Вместо этого следует использовать Fragments. Имея A, B, C и D, должны быть Fragment каждый, а затем иметь один единственный Activity, который обрабатывает только навигацию между Fragments.