Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 02/07/13, 01:57:59
Avatar de antmon12
antmon12 antmon12 no está en línea
Usuario novato en la web
Mensajes: 29
 
Fecha de registro: ene 2013
Mensajes: 29
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Mapas en Android

Buenas compañeros programadores de Android!!
Planteo aquí mi duda pues estoy harto de darle vueltas y no encuentro la solución.
Tengo una actividad principal con Navigation Drawer donde cada vez que elijo una opción de la lista cargo una nueva actividad que extienda de Fragment. El problema viene cuando para usar los mapas debo extender de FragmentActivity por lo que no se como llamarlo desde la actividad anterior.
Cuando selecciono un elemento del panel lateral hago lo siguiente:

private Fragment mContent;
mContent = new Fragment_datos();
getFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, mContent).commit();

No se si me he explicado del todo bien pero espero me podaís ayudar.
Un saludo!
Responder Con Cita


  #2  
Viejo 02/07/13, 08:45:38
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
O no entiendes el funcionamiento de los Fragment o no te has explicado bien.

Una nueva Activity no puede heredar de un Fragment. Y por lo que veo lo que haces es reemplazar el Fragment dentro de la MISMA Activity. Pues con un Fragment que contiene un mapa es exactamente igual, y más ahora con API V2, que ni siquiera tienen que ser MapActivity o MapFragment.

Eso si, tendrás que reemplazar los métodos onStart, onStop, onResume y onPause. Todo muy bien explicado en la documentación oficial de Google sobre Maps V2.
Responder Con Cita
  #3  
Viejo 02/07/13, 11:31:42
Avatar de antmon12
antmon12 antmon12 no está en línea
Usuario novato en la web
Mensajes: 29
 
Fecha de registro: ene 2013
Mensajes: 29
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Pongo código y así despejamos dudas:

Código:
<!-- Layout principal --> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#585858"
        android:choiceMode="singleChoice" />
</android.support.v4.widget.DrawerLayout>
Código:
//Actividad principal
public class MainActivity extends Activity implements OnItemClickListener {

    // Variables miembro.
    private Fragment mContent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
		if (mContent == null)
			mContent = new Fragment_localizacion();
        
        getFragmentManager()
		.beginTransaction()
		.replace(R.id.content_frame, mContent).commit();
......
Código:
//Fragment del mapa
public class Fragment_localizacion extends FragmentActivity {

	private GoogleMap mapa;

	 @Override
	 protected void onCreate(Bundle savedInstanceState) {
		 super.onCreate(savedInstanceState);
		 setContentView(R.layout.mi_localizacion);
		 mapa = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
		 mapa.setMapType(GoogleMap.MAP_TYPE_NORMAL);
		 mapa.setMyLocationEnabled(true);
		 mapa.getUiSettings().setZoomControlsEnabled(false);
		 mapa.getUiSettings().setCompassEnabled(true);
		 mapa.getMyLocation();
}

Última edición por antmon12 Día 02/07/13 a las 11:35:54
Responder Con Cita
  #4  
Viejo 02/07/13, 13:06:42
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Lo dicho, no entiendes como funcionan los Fragment.

Estás tratando de meter un FragmentActivity en un Fragment, cosa que no tiene nada que ver el uno con el otro.

Los Activity a partir de API v11 incluyen el getFragmentManager() para dar soporte a introducir Fragments. Para usar Fragments en versiones anteriores de Android el paquete de soporte incluye la clase FragmentActivity, que tiene el método getSupportFragmentManager(), equivalente al getFragmentManager() del Activity a partir de API v11.

En resumen, una Activity V11 = FragmentActivity V8. Y ninguno de los 2 son Fragment, un Fragment es otra cosa.
Responder Con Cita
  #5  
Viejo 02/07/13, 16:26:54
Avatar de antmon12
antmon12 antmon12 no está en línea
Usuario novato en la web
Mensajes: 29
 
Fecha de registro: ene 2013
Mensajes: 29
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Con este código puedes mostrar sobre el frame de la actividad principal otra clase que extienda de fragmen no?

Código:
if (mContent == null)
			mContent = new Fragment_localizacion();
        
        getFragmentManager()
		.beginTransaction()
		.replace(R.id.content_frame, mContent).commit();
Responder Con Cita
  #6  
Viejo 02/07/13, 18:37:59
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Si, para eso sirve.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 09:37:56 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007