Android Google Maps en Fragmento
Estoy desarrollando una aplicación con un menú en la parte superior con algunos botones dentro de ese menú. Estoy tratando de agregar google maps a uno de los botones, pero no tengo mucho éxito. Estaba siguiendoeste tutorial pero en lugar de implementar google maps directamente enMainActivity
Los agregué a un fragmento que se inicia cuando se presiona el botón. Todo funcionó bien. Cuando presiono el botón los mapas se cargan y funcionan como deberían. Cuando presiono el botón de inicio para volver aMainActivity
Funciona perfectamente, pero cuando quiero volver a cargar mapas, me dadebugging error: Class File Editor: Source not found
Este es el código deGoogleMaps
fragmento:
public class GoogleMaps extends Fragment{
private GoogleMap googleMap;
double latitude = 46.514249;
double longitude = 15.080183;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View myFragmentView = inflater.inflate(R.layout.maps_layout, container, false);
try {
// Loading map
initilizeMap();
} catch (Exception e) {
Log.e("ERROR", "ERROR IN CODE: " + e.toString());
e.printStackTrace();
}
return myFragmentView;
}
private void initilizeMap() {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)));
CameraPosition cameraPosition = new CameraPosition.Builder().target(
new LatLng(latitude, longitude)).zoom(12).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getActivity(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
}
Cualquier ayuda será apreciada.
EDITAR: Si no fuera lo suficientemente específico. Funciona cuando cargafragment
una vez (por primera vez) pero no funciona cuando intento cargarlo de nuevo (segunda vez).
EDITAR v2: En realidad encontré la solución yo mismo. Todo lo que tenía que hacer era agregarOnDestroyView
método:
public void onDestroyView()
{
super.onDestroyView();
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}
Gracias de cualquier manera.