Ich entwickle eine App mit einem Menü oben mit einigen Schaltflächen in diesem Menü. Ich versuche Google Maps zu einem der Buttons hinzuzufügen, bin aber nicht sehr erfolgreich. Ich folgte this tutorial, aber anstatt google maps direkt in MainActivity
zu implementieren, fügte ich sie in ein Fragment, das gestartet wird, wenn die Taste gedrückt 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ücken, um MainActivity
zurück zu gehen funktioniert es perfekt, aber wenn ich Karten laden will wieder gibt es mir debugging error: Class File Editor: Source not found
Android Google Maps in Fragment
Dies ist Code von GoogleMaps
Fragmente:
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 mögliche Hilfe geschätzt .
EDIT: Wenn ich nicht spezifisch genug war. Es funktioniert, wenn ich fragment
einmal (zum ersten Mal) lade, aber es funktioniert nicht, wenn ich versuche, es erneut zu laden (zweites Mal).
EDIT v2: Ich fand tatsächlich Lösung selbst. Alles, was ich tun musste, war OnDestroyView
Methode hinzufügen:
public void onDestroyView()
{
super.onDestroyView();
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}
Danke trotzdem.
i ANM vor dem gleichen Problem, ich habe hinzufügen 'onDestroyView()' Methode, aber es ist nicht zu helfen .. wenn du mir helfen kannst –
Ich kann dir nicht helfen, wenn du dein Problem nicht erklärst und wenn ich den Code nicht sehe ... – Izak
danke Izak aber ich habe das gelöst :) –