2010-08-02 2 views
0

Этот вопрос фактически состоит из двух частей.Изменение рабочего процесса приложения для использования TabActivity

Первая часть:

Я развиваю свое первое приложение в течение нескольких недель. У меня 5 экранов, и все кажется хорошо. Тем не менее, я рассматриваю возможность изменения навигации приложения в TabView.

Я не очень много вникал в это, но я надеюсь, что кто-то может спасти меня немного. Кажется, что люди обычно не помещают «Действия» внутри каждой вкладки. Они просто указывают содержимое вкладки на представление. Вот где мои основные неудачи. 1) У меня уже есть классы активности, полные кода, и 2) Я не могу догадаться, как выглядит структура приложения с помощью TabView. Например, где я помещаю код обработчика для нажатия кнопки на представлении? Все это просто как-то сбрасывается в TabView Activity?

Что я хотел бы, если бы вы могли бы дать мне краткое описание того, что я ищу, ответы на любые вопросы, которые, по вашему мнению, могут возникнуть, и указать мне на некоторые ресурсы для создания приложений TabView. Быстрый поиск Google действительно показывает мне, как создать TabView Activity и добавить к нему пару вкладок. Код не идет глубже. Например, скажем, у меня есть макет xml для показа в одной из областей содержимого моей вкладки, где код идет для нажатия кнопки, которая у меня есть в этом макете?

Вторая часть:

Я добавил TabActivity, чтобы обернуть деятельности я в настоящее время есть в На данный момент у меня есть деятельности, населяющие содержание моих закладках (хотя в конечном счете, я хотел бы сделать это в. самый эффективный способ, который, по-видимому, не имеет активности в качестве содержимого вкладки). Я заметил что-то довольно раздражающее. Моя основная деятельность - это активность, которую я написал для моего пользователя для входа в свою учетную запись. После входа в систему они будут перенесены в мою вкладку. Вот что происходит:

Когда я нахожусь в своей вкладке, и я «сворачиваю» приложение, нажав кнопку «Домой», а затем снова запустил его, я не вернусь к активности вкладки. Меня берут в мой журнал в Activity. Зачем? У меня нет начального режима моей активности вкладок, установленного в singleInstance ... или это singleInstance по умолчанию? Как я могу сделать повторный запуск приложения, показывая активность вкладок (в идеале, задав какой-то параметр, предполагая, что я делаю что-то не так, и не нужно нигде сохранять эти данные и читать его и программно рассказывать, к чему это следует делать)?

Спасибо за ваше время и помочь

+0

Какое действие запускается в режиме входа в систему? Для этого не должно быть 'singleTask'. Если вы поместите вывод logcat в оба метода действий onCreate и onDestroy, каков порядок событий при запуске -> войти в систему -> нажмите home -> relaunch? –

+0

В настоящее время он является «стандартным», так как у меня нет режима запуска в моей учетной записи. Тем не менее, у меня нет noHistory, установленного в true. – Andrew

+0

Удаление noHistory, похоже, решило мою проблему. – Andrew

ответ

0

У меня нет комментария о целесообразности отказа от использования подвидов деятельности в TabActivity. Что касается обработчиков - если вы не собираетесь внедрять представления вместо действий, то все настройки обработчика типа android:onclick в вашем формате XML вызовут методы в TabActivity. Это связано с тем, что они переходят к методам в представлениях Context, который обычно является ближайшим, содержащим Activity. Если вы хотите разделить свой код дальше, не используя Activities, я считаю, что вам придется использовать вызовы findViewById в представлениях содержимого вкладки после того, как вы их настроили, и привязать обработчики вручную оттуда в вашем коде.

+0

Это было мое лучшее предположение, я просто не могу найти достойных примеров. Вы знаете, что вы могли бы связать меня? И действительно ли я смотрю на один файл TabActivity huuuuge? Когда я закончу, я планирую иметь около 10 или около того экранов. Спасибо за вашу помощь. – Andrew

+0

К сожалению, я не знаю никаких хороших примеров. Если вам нужно избегать использования вспомогательных действий, я бы посоветовал настроить отдельные классы для хранения логики для каждой вкладки. Постройте каждый из них, передав верхний вид вкладки в «onCreate» TabActivity и привяжите себя ко всем событиям, которые им нужны. –

+0

Я не * требую * не использовать вспомогательные действия, но если это самый эффективный способ реализации TabActivity, это то, что я хотел бы сделать. Однако это вызывает некоторые проблемы. Например, скажем, есть кнопка на View A, которая запускает View B. Могу ли я видеть View B внутри той же самой вкладки? Когда View A в конечном итоге снова заполнит экран, вам не придется перезагружать все данные? В нескольких местах я также использую startActivityForResult. Без использования деятельности это ставит меня в трудное место, да? – Andrew

Смежные вопросы