¿Cómo implementar Google Maps dentro de un fragmento y usar el objeto GoogleMap?

¿Cómo implementar GoogleMap en un fragmento?

Estoy tratando de desarrollar lo mismo, pero getMap () no se puede ejecutar porque SupportMapFragment (al ejecutar la línea (SupportMapFragment) getActivity (). GetSupportFragmentManager (). FindFragmentById (R.id.map)) devuelve un objeto nulo .

He intentado extender MapFragment y SupportMapFragment en lugar de Fragment, pero no funcionaron …

Simplemente no quiero crear una nueva actividad para mostrar un mapa: Quiero mostrar un mero mapa en lugar de mi actividad principal. ¿Puedo cumplir mi meta?

Tengo una actividad principal que extiende ActionBarActivity, que reemplaza los fragmentos dentro de un contenedor (dependiendo de la selección del usuario en el cajón, el fragmento X o Y es reemplazado y mostrado). Tengo 2 fragmentos funcionando, pero no puedo lograr el objetivo de manipular un objeto de GoogleMap dentro de un Fragmento.

Ese es mi mapa.xml

<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/mapaPrincipal" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" /> 

Esa es mi clase FragmentMapa:

  import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; import com.ingartek.bizkaimove.R; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentMapa extends Fragment { private GoogleMap mMapa; public FragmentMapa() { // TODO Auto-generated constructor stub } @Override public void onAttach (Activity activity) { super.onAttach(activity); } @Override public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.mapa, container, false); mMapa = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.mapaPrincipal)).getMap(); return rootView; } 

La línea resaltada no funciona porque el objeto SupportMapFragment es nulo y por lo tanto, getMap () se bloquea.

Cualquier ayuda por favor? Gracias por adelantado.

SOLUCIÓN A MI PROBLEMA

Para cualquier persona que se enfrenta a un problema como el mío: no debe utilizar getSupportFragmentManager (), en su lugar debe utilizar getChildFragmentManager (). Esto debe permanecer así:

 @Override public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.mapa, container, false); setupMapIfNeeded(); return rootView; } private void setupMapIfNeeded() { if( mMapa == null ){ SupportMapFragment smf = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapaPrincipal); if( smf != null ){ Toast.makeText(getActivity(), "Let's go!!", Toast.LENGTH_SHORT).show(); mMapa = smf.getMap(); }else{ Toast.makeText(getActivity(), "SMF is null...", Toast.LENGTH_SHORT).show(); } if( mMapa != null ){ setupMap(); } } } private void setupMap() { // TODO Auto-generated method stub Toast.makeText(getActivity(), "Configure the map", Toast.LENGTH_SHORT).show(); } 

Hola puedes referir mi respuesta aquí

Tienes que llamar así …

 SupportMapFragment fragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapaPrincipal); mMapa = fragment.getMap(); 
  • Diferenciación de los lenguajes CJK (chino, japonés y coreano) en Android
  • Fondo Android + texto + icono para un botón
  • Cliente Android para servicio web REST con seguridad básica
  • Android Dex: la opción "--core-library" para suprimir este mensaje de error
  • Cómo obtener la fecha de caducidad de las suscripciones en la aplicación de Google Play
  • Autenticación desde el dispositivo Android contra Spring Security Rest API
  • ORMLite para Android no autorefresh objeto extranjero utilizando foreignAutoRefresh
  • Cómo convertir cadena de fecha a largo millseconds
  • Forzar subclases para establecer una variable en java
  • Android: Recuperando el enfoque con SurfaceView
  • Determinar la existencia de la función Streetview de Google
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.