Android Google Maps in Fragment
Ich entwickle eine App mit einem Menü oben, in dem sich einige Schaltflächen befinden. Ich versuche, einer der Schaltflächen Google Maps hinzuzufügen, bin aber nicht sehr erfolgreich. Ich folgtedieses Tutorial aber anstatt google maps direkt in zu implementierenMainActivity
Ich habe sie zu einem Fragment hinzugefügt, das beim Drücken der Taste gestartet wird. Alles hat gut funktioniert. Wenn ich den Knopf drücke, werden die Karten geladen und sie funktionieren wie sie sollten. Wenn ich die Home-Taste drücke, um zu zurückzukehrenMainActivity
es funktioniert einwandfrei, aber wenn ich Karten wieder laden möchte, gibt es mirdebugging error: Class File Editor: Source not found
Dies ist der Code vonGoogleMaps
Fragment:
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();
}
}
}
}
Jede Hilfe wird geschätzt.
EDIT: Wenn ich nicht spezifisch genug wäre. Es funktioniert, wenn ich ladefragment
einmal (zum ersten Mal), aber es funktioniert nicht, wenn ich versuche, es erneut zu laden (zum zweiten Mal).
EDIT v2: Ich habe tatsächlich selbst eine Lösung gefunden. Alles was ich tun musste war hinzuzufügenOnDestroyView
Methode:
public void onDestroyView()
{
super.onDestroyView();
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}
Danke trotzdem.