Sto sviluppando un'applicazione con un menu in alto con alcuni pulsanti all'interno di quel menu. Sto cercando di aggiungere google maps a uno dei pulsanti, ma non ho molto successo. Stavo seguendo this tutorial ma invece di implementare google maps direttamente in MainActivity
li ho aggiunti in un frammento che viene avviato quando si preme il pulsante. Tutto ha funzionato bene. Quando premo il pulsante, le mappe si caricano e funzionano come dovrebbero. Quando si preme il pulsante Home per tornare alla MainActivity
funziona perfettamente, ma quando voglio caricare mappe di nuovo mi dà debugging error: Class File Editor: Source not found
Android Google Maps in Fragment
Questo è il codice di GoogleMaps
frammento:
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();
}
}
}
}
Qualsiasi aiuto sarà apprezzato .
MODIFICA: Se non ero abbastanza specifico. Funziona quando carico fragment
una volta (per la prima volta) ma non funziona quando provo a caricarlo di nuovo (seconda volta).
EDIT v2: In realtà ho trovato la soluzione da solo. Tutto quello che dovevo fare era aggiungere OnDestroyView
metodo:
public void onDestroyView()
{
super.onDestroyView();
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}
Grazie comunque.
i ANM di fronte lo stesso problema, ho aggiunto 'onDestroyView()' metodo, ma non sta aiutando .. se mi puoi aiutare –
Non posso aiutarti se non spieghi il tuo problema e se non vedo il codice ... – Izak
grazie a Izak ma l'ho risolto :) –