Android Google Maps no Fragment
Estou desenvolvendo um aplicativo com um menu no topo com alguns botões dentro desse menu. Estou tentando adicionar o google maps a um dos botões, mas não sou muito bem-sucedido. Eu estava seguindoeste tutorial mas em vez de implementar o google maps diretamenteMainActivity
Eu os adicionei em um fragmento que é lançado quando o botão é pressionado. Tudo funcionou bem. Quando pressiono o botão, os mapas carregam e funcionam como deveriam. Quando eu pressiono o botão home para voltar paraMainActivity
funciona perfeitamente, mas quando eu quero carregar mapas novamente, isso me dádebugging error: Class File Editor: Source not found
Este é o 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();
}
}
}
}
Qualquer ajuda será apreciada.
EDIT: Se eu não fosse específico o suficiente. Funciona quando eu carregofragment
uma vez (pela primeira vez), mas não funciona quando tento carregá-lo novamente (segunda vez).
EDITAR v2: Eu realmente encontrei a solução eu mesmo. Tudo o que eu tinha que fazer era adicionarOnDestroyView
método:
public void onDestroyView()
{
super.onDestroyView();
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}
Obrigado mesmo assim.