2012-06-05 2 views
1

Я хочу расширить как MapActivity, так и FragmentActivity. Я знаю, что Java не допускает множественного наследования, поэтому как мне это сделать? Я читал что-то о «составном» типе, но я никогда не реализовал его, поэтому я не знаю, как это сделать.Android расширяет несколько видов деятельности

Кто-то еще должен был столкнуться с этим раньше, как вы его решили?

EDIT: Причина, по которой я хочу это, потому что у меня есть 3 действия на вкладках; карту, галерею изображений и представление списка настроек. Код для всех трех «acitivities» находится внутри одной большой MapActivity под названием «Main». Да, я знаю, что это уродливое, а не хорошая практика программирования, и я не помню, почему я написал это так. Я думаю, что это было потому, что я читал большинство людей, рекомендующих НЕ иметь отдельные действия для отдельных вкладок ... что, если бы я решил разделить их на отдельные действия, у меня больше не было бы этой проблемы.

+1

Кто сказал, что это нехорошо идея использовать отдельные виды деятельности? Помимо введения фрагментов, я не понимаю, почему это плохо. – AedonEtLIRA

+0

@AedonEtLIRA - http://stackoverflow.com/questions/1590340/android-tabs-mapview-activities-within-tabs http://stackoverflow.com/questions/1568739/android-why-shouldnt-i-use-activities -inside-tabs – Josh

+0

Я просмотрел ссылки, которые вы отправили, и это определенно кажется, что вы правы, и к этому, спасибо. Это то, к чему я еще не столкнулся, и это имеет много смысла. Однако, поскольку Java не имеет множественного наследования, я бы просто придерживался методологии множественных действий. Вы всегда можете вернуться к нему позже, если потребуется. – AedonEtLIRA

ответ

0

В итоге я решил это решить, введя и изменив исходный код пакета поддержки Android и разместив приложение. Обрисованный here, все, что я сделал, это сделать FragmentActivity (android.support.v4.app) расширить MapActivity. Я не думаю, что обратное работает ... хотя, возможно, и это потребует, чтобы у вас был источник библиотеки сопоставления, который вы используете (в случае с Google Maps - нет)

0

Я понятия не имею, почему вы хотите такую ​​вещь, но я полагаю, что самое легкое решение - это что-то вроде ActivityGroup, что-то похожее на то, как работает TabbedActivity.

+0

Активность группы устарела, поэтому я не хочу ее использовать. плохо отредактируйте мой вопрос, чтобы попытаться объяснить почему – Josh

+0

Я согласен Я также не понимаю, почему вы хотели бы это сделать. – Proxy32

+0

Я еще не использовал фрагменты. Я все еще программирую для большинства (2.2-2.3). Однако то же самое можно сделать с использованием фрагмента. – AedonEtLIRA