GetMap() undefiniert für den Typ MapFragment
Ich versuche, eine Karte-fragment arbeiten, die in meiner Anwendung, und ich weiterhin eine Fehlermeldung angezeigt, wenn Sie versuchen, um meine GoogleMap-Objekt.
MapFragment.java
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.LatLng;
public class MapFragment extends Fragment {
private GoogleMap map;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
return view;
}
}
Und meine frament-code ist
fragment_map.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/btnEugene"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:onClick="onClick_Eugene"
android:text="Eugene" />
<Button
android:id="@+id/btnHpc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:onClick="onClick_HPC"
android:text="HPC" />
<Button
android:id="@+id/btnTheGrove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:onClick="onClick_FG"
android:text="Forest Grove" />
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_below="@+id/btnTheGrove"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Den genauen Fehler bin ich immer
Die Methode getMap() ist nicht definiert für den Typ MapFragment
Was mache ich falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
getMap()
ist veraltet. Versuchen Sie es mit getMapAsyncEDIT*
Oh, auch Ihre Klasse name etwas anders und
import
com.google.android.gms.maps.MapFragment
das ist die Klasse, die Sie verwenden sollten in der xml und hat die getMap () - Methode 🙂Ich schlage vor, verwenden Sie
SupportMapFragment
stattMapFragment
XML-Code :
Java-Code :
Der Grund des Problems ist dein fragment name
MapFragment
dass ist das gleiche wie gms istMapFragment
Klasse, dann ist dein casting bekam Problem, versuchen Sie, ändern Sie Ihre fragment-Namen, um etwas anderes wieMyMapFragment
:Dann sollte es ok sein, natürlich müssen Sie
import com.google.android.gms.maps.MapFragment;
.Wenn Sie nicht wollen, ändern Sie Ihre fragment-Namen dann ändern Sie die
MapFragment
Gießen mit dem gesamten package-Namen alscom.google.android.gms.maps.MapFragment
Sie können nicht aufblasen, ein layout in einem fragment, wenn das layout enthält ein fragment. Verschachtelte Fragmente werden nur unterstützt, wenn Hinzugefügt, um ein fragment dynamisch.