Ich folgte diesem Tutorial auf dieser Website: http://www.c-sharpcorner.com/article/xamarin-android-create-google-map-with-marker/. Es funktioniert 100% in MainActivity, aber sobald ich den Code in das Fragment verschiebe, erhalte ich eine Fehlermeldung, die besagt, dass das Objekt nicht auf eine Instanz gesetzt ist. Was könnte das Problem sein? Hier ist mein Code:So verwenden Sie FragmentManager in Fragment - Xamarin
public class ViewAlert : Fragment, IOnMapReadyCallback
{
View view = null;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
view = inflater.Inflate(Resource.Layout.ViewAlert, container, false);
try
{
SetUpMap();
}
catch (Exception ex)
{
}
return view;
}
private void SetUpMap()
{
if (GMap == null)
{
FragmentManager.FindFragmentById<MapFragment>(Resource.Id.googlemap).GetMapAsync(this);
}
}
public void OnMapReady(GoogleMap googleMap)
{
this.GMap = googleMap;
GMap.UiSettings.ZoomControlsEnabled = true;
LatLng latlng = new LatLng(Convert.ToDouble(gpsLatitude), Convert.ToDouble(gpsLongitude));
CameraUpdate camera = CameraUpdateFactory.NewLatLngZoom(latlng, 15);
GMap.MoveCamera(camera);
MarkerOptions options = new MarkerOptions()
.SetPosition(latlng)
.SetTitle("Chennai");
GMap.AddMarker(options);
}
}
Der Fehler tritt auf dieser Linie:
FragmentManager.FindFragmentById<MapFragment>(Resource.Id.googlemap).GetMapAsync(this);
Ich habe versucht:
view.FragmentManager.FindFragmentById<MapFragment>(Resource.Id.googlemap).GetMapAsync(this);
Aber es hat nicht funktioniert.
Die Karte lädt ohne einen Marker. Der Breaking Code ist verantwortlich für das Setzen des Markers auf der Karte.
Es funktionierte völlig in Ordnung. Vielen Dank –