2010-06-10 2 views
14

Есть ли способ отображения MapView без расширения MapActivity? У меня есть другой класс Activity, который я расширяю, и я бы предпочел не изменять его ... Я видел, что вы можете раздуваться с помощью MapActivity, но не нашли каких-либо спецификаций/примеров о том, как это сделать.MapView без расширения MapActivity

+0

Что такое другой класс? – Macarse

+0

мой собственный, который устанавливает разные вещи, имеет множество функций, объектов, которые я использую в действиях. –

+0

Я мог бы расширить свой класс с помощью MapActivity, но это означало бы, что все мои действия расширят его ... –

ответ

6

Есть ли способ отображения MapView без расширения MapActivity?

Не то, чтобы я знал.

я мог бы расширить мой класс с MapActivity, но это означало бы, все моя деятельность будет распространяться это

Затем вам нужно реорганизовать код, таким образом, чтобы ваши действия не все наследоваться от собственный базовый класс. Наследование не является очень гибким методом OO, особенно на Java.

+3

Мне очень жаль, что некоторые «официальные» компоненты Android требуют, чтобы ваша деятельность наследовала определенный базовый класс, а MapActivity и FragmentActivity были двумя особенно раздражающими примерами. – Ralf

+0

«Тогда вам нужно реорганизовать свой код, чтобы ваши действия не все наследовали от вашего собственного базового класса. Наследование - это не очень гибкая техника OO, особенно в Java». Это расстраивает то, что именно Android SDK не применяет этот – Ixx

+0

Я имею в виду, это просто так неправильно и раздражает. Просто потому, что вы где-то размещаете карту, вся деятельность должна расширять MapActivity. Имеет смысл включить общий код всех моих действий в один общий суперкласс, а не избегать наследования, просто потому, что Android использует его неправильно. Что дальше, может быть, TextViewActivity? – Ixx

0

Практический способ состоит в том, чтобы сделать две версии вашего исходного базового действия, и единственная разница между ними - это одна расширяет Activity, а другая расширяет MapActivity (та же проблема с ListActivity).

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

0

Прямо сейчас вы можете использовать фрагменты, чтобы отображать карту в любом месте вашей деятельности, и вашему основному действию не нужно расширять карту. у вас есть реализация в MapView in a Fragment (Honeycomb)

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