Расширение действия с помощью FrameLayout для нескольких действий с повторным использованием кода

#android #android-activity #code-reuse #android-framelayout

#Android #android-активность #повторное использование кода #android-framelayout

Вопрос:

Я не уверен, что это правильный способ сделать это. У меня есть ChatActivity использование FrameLayout в frame.xml . Это действие необходимо повторно использовать в 5 действиях. Есть ли возможность повторно использовать код? Это действие выполняется независимо от других действий.

Например, в действии A, которое использует main.xml , Я хочу ChatActivity и frame.xml быть включенным. Каков наилучший способ добиться этого, кроме объединения ChatActivity и frame.xml в действие А и main.xml ? Объединение действий будет означать, что мне придется копировать и вставлять коды 5 раз в разные действия. Я не уверен, что это правильный путь…

Ответ №1:

Вы не можете «включить» an Activity в другое Activity . Поскольку у вас Activity есть базовая функциональность, которую используют все ваши другие Activities пользователи, вы могли бы Activities расширить эту базовую Activity функциональность.

Лучшим способом для вас было бы использовать Fragments библиотеку совместимости.

Что касается макетов, вы можете использовать их повторно и импортировать в свой текущий макет с помощью include .

Надеюсь, это поможет!

Ответ №2:

Используйте фрагменты. вы можете создать один фрагмент и использовать его во всех действиях. Фрагменты имеют свой собственный вид. Посмотрите на следующую ссылку для фрагмента.

http://developer.android.com/guide/topics/fundamentals/fragments.html

вы можете использовать фрагменты до версии 3.0, включив библиотеку совместимости.

http://android-developers.blogspot.com/2011/03/fragments-for-all.html

Ответ №3:

На Android вы можете повторно использовать XML-файлы, используя тег include, например

 <include layout="@layout/okcancelbar_button" android:id="@ id/okcancelbar_ok"/>
 

Чтобы поделиться функциями действия с другими действиями, создайте базовое действие с общими функциями и сделайте другие действия расширенными из него.