Преобразование нескольких активностей в один фрагмент - PullRequest
2 голосов
/ 11 апреля 2011

Я недавно решил обновить свое приложение для поддержки новой функции фрагментов в Honeycomb 3.0.Мое приложение в настоящее время работает в виде списка, который открывает различные действия в зависимости от того, какой элемент списка был выбран.Используя адаптацию кода в этого учебного пособия Я создал приложение, состоящее только из двух действий, но в зависимости от того, какой элемент списка щелкнули, запускается второе действие "средство просмотра" с использованием другого макета XML.

К сожалению, я не смог понять, как вызывать старые методы, которые имели всю функциональность.Должен ли я импортировать все мои старые действия, а затем вызвать методы в операции просмотра (мне может понадобиться совет о том, как именно это сделать) или я должен просто поместить все методы непосредственно в одно и то же действие просмотра (пожалуйста, учитывайте размерэти методы (которые, кстати, очень велики)).

Как только все будет работать с двумя действиями заранее, тогда будет довольно простая задача "фрагментации" приложения, как показано здесь Хотя я не учел, что может быть способ разрешить нескольким фрагментам занимать одно и то же место в деятельности (если это так, пожалуйста, дайте мне знать, как это делается)

Спасибо

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Как указал Джеймс, вам придется перенести бизнес-логику из своей деятельности в свои фрагменты.Для обработки событий вы можете создать интерфейс слушателя.Деятельность CONTAINER будет реализовывать этот интерфейс.Поскольку фрагменты имеют доступ к активности контейнера, вы сможете делегировать активности контейнера « логика » для нужных событий.Для этих событий действие решит, запускать ли новое действие, показывать / скрывать новые фрагменты или что-то еще.

У меня был похожий вопрос, посмотрите на вопрос и ответ: здесь

Хотя я не думал, что может быть способразрешить нескольким фрагментам занимать одно и то же пространство в деятельности (если это так, пожалуйста, дайте мне знать, как это делается)деятельность.Опять же, взгляните на ответ здесь ... Я думаю, что концепция / область действия Activity немного изменилась, и теперь Activity может содержать различные фрагменты, каждый из которых позволит пользователю выполнить одно целое.

0 голосов
/ 11 апреля 2011

Я не уверен, что вы подразумеваете под "вызовом старых методов, которые имели всю функциональность". Вы захотите переписать все ваши классы активности в виде фрагментов. Проверьте этот урок здесь (это очень кратко). По сути, вам понадобится действие, состоящее из ListFragment и FrameLayout. Ваш ListFragment обновит FrameLayout, изменив соответствующий фрагмент на основе выбранной строки.

...