В настоящее время мы создаем приложение с 4 вкладками: "Карта", "Люди", "Места", "События". Люди, места и события в приложении отображаются как значки на карте. По умолчанию на вкладках "Люди", "Места" и "События" отображаются списки, индивидуально отображаемые, отображающие все Люди, Места и События соответственно.
alt text http://web6.twitpic.com/img/37202700-f92052dc474b74e1760edda1c47f6940.4adcb134-scaled.png
Теперь, сейчас каждая вкладка имеет в своем содержании набор намерений для запуска соответствующей активности. Например, есть MapTabActivity, который расширяет MapActivity, ShowPeopleListActivity, который показывает людей и т.д. И т.д.
Я вижу лот qaru.site/info/509949/... questions/ответы, говорящие, что из-за различных ограничений в способе настройки TabHost лучше не использовать действия в качестве содержимого вкладок. Например, невозможно запустить новое действие и заменить его существующей деятельностью на вкладке, тогда как можно отключить представление с другим видом.
Теперь я на распутье. Мы (к лучшему или худшему) посвятили много времени, пытаясь заставить это приложение работать так, как оно было в настоящее время структурировано, с Акциями как содержанием вкладок. Когда нажимается значок, соответствующий лицу, месту или событию, он запускает VIEW Intent на URI, соответствующий этому объекту; это получает активность, которая затем показывает объект. Тот же механизм работает как на Карте, так и в отдельных списках. Нам очень нравится свободное соединение, которое это дает нам; мы просто предоставляем команду VIEW и URI человеку/месту/событию, и это автоматически приводит нас к правильной деятельности. Конечно, запущенная деятельность закрывает представление вкладки, а не появляется внутри этого, но мы были готовы жить с этим.
Здесь проблема: из шоу-активности мы хотим иметь возможность вернуться к карте, сосредоточенной на этом человеке, месте или событии. Мы можем запустить новую активность, чтобы снова отобразить карту, но теперь у нас есть активность карты как содержимое вкладки, а также активность шоу, а также новая активность карты в стеке действий; учитывая, насколько ресурсоемким является активность карты, я предполагаю, что это не идеальный способ пойти.
Я думаю, мой вопрос в том, есть ли полезный учебник где-то, где точно показано, как выполнять сложные задачи с помощью TabHost? Я видел HelloTabWidget; Я ищу что-то гораздо более сложное, чем это. Я волнуюсь, что если мы перейдем к способу делать вид на основе View, нам нужно будет сделать много домашнего хозяйства, чтобы перехватить все задние события, попытаться отключить просмотры и т.д. И т.д., А также решительно связывая нашу программу так, как мы этого не хотим.
Любые предложения по продвижению вперед будут чрезвычайно оценены. Мы новичок в Android, поэтому мы стараемся следовать установленным лучшим практикам, но это трудно, когда несколько примеров, которые мы видели, слишком упрощены для нашего использования.