2010-06-10 10 views
14

¿Hay alguna manera de mostrar un MapView sin extender MapActivity? Tengo otra clase de actividad que estoy ampliando y preferiría no cambiar eso ... He visto que puedes inflar usando MapActivity, pero no encontré ninguna especificación/ejemplos sobre cómo hacerlo.MapView sin extender MapActivity

+0

Cuál es la otra clase? – Macarse

+0

la mía, que está poniendo las cosas diferentes, tiene muchas funciones, objetos que uso en las actividades –

+0

pude extender mi clase con MapActivity, pero eso significaría todas mis actividades que se extenderían ... –

Respuesta

6

¿Hay alguna manera de mostrar un MapView sin extender MapActivity?

No es que yo sepa.

pude extender mi clase con MapActivity, pero eso significaría todas mis actividades de los extenderían

Luego hay que refactorizar su código, de tal manera que sus actividades no todos lo hacen heredan de su propia clase base. La herencia no es una técnica OO muy flexible, particularmente en Java.

+3

Me parece muy lamentable que algunos componentes Android "oficiales" requieran que su actividad herede una clase base específica, con MapActivity y FragmentActivity como dos ejemplos específicamente molestos. – Ralf

+0

"Entonces necesita refactorizar su código, de modo que sus actividades no hereden todas de su propia clase base. La herencia no es una técnica OO muy flexible, particularmente en Java". Es desalentador que precisamente el SDK de Android no aplica este – Ixx

+0

Quiero decir, esto es tan incorrecto y molesto. Solo porque pones una vista de mapa en alguna parte, toda la actividad debe extender MapActivity. Tiene sentido poner el código común de todas mis actividades en 1 superclase común, no para evitar la herencia, solo porque Android lo está usando incorrectamente. ¿Qué sigue, tal vez una TextViewActivity? – Ixx

0

Una forma práctica es hacer dos versiones de su actividad de base original y la única diferencia entre ellos es uno extiende la actividad y la otra se extiende MapActivity (el mismo problema con ListActivity).

No tenemos códigos duplicados. Eso es mal olor, lo sé. Pero son casi idénticos, puedes simplemente copiar el archivo completo y hacer una pequeña modificación cuando hayas cambiado la actividad base.

0

En este momento usted puede utilizar fragmentos para mostrar el mapa en cualquier lugar de su actividad y su actividad no tiene que extender mapactivity. usted tiene una aplicación en MapView in a Fragment (Honeycomb)

Cuestiones relacionadas