2016-07-11 28 views
-1

Ich hoffe, Sie helfen mir, diesen Fehler zu lösen.Ich habe einen Fehler bei meiner Aktivität

Ich habe bereits eine öffentliche Klasse offen wie folgt aus:

@SuppressWarnings("deprecation") 
public class AddPostActivity extends AppCompatActivity { 

in Wich ich habe einige Code geschrieben, aber auf dem Abschnitt der Karte in dieser Tätigkeit erscheint eine Fehlermeldung wie folgt aus: "kann nicht Methode lösen getMap(); "

Der Code ist: `

MapFragment fm = (MapFragment)getFragmentManager() 
    .findFragmentById(R.id.maps_fragment); 
    map = fm.getMap(); 

    map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
    mUiSettings = map.getUiSettings(); 

    mUiSettings.setCompassEnabled(true); 
    mUiSettings.setMyLocationButtonEnabled(false);` 

* Ich habe versucht getMap() zu ersetzen; mit getMapAsync(); : `

 public class AddPostActivity extends FragmentActivity implements OnMapReadyCallback { 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_add_post); 

      MapFragment fm = (MapFragment) getFragmentManager().findFragmentById(R.id.maps_fragment); 
      fm.getMapAsync(this); 
     } 

     public void onMapReady(GoogleMap map) { 
       map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
       mUiSettings = map.getUiSettings(); 
       mUiSettings.setCompassEnabled(true); 
       mUiSettings.setMyLocationButtonEnabled(false); 
     } 


    } 

aber erscheint Öffentlichkeit (die zweiten Klasse) in roter Linie

wie kann ich dann den Code des OnMapReadyCallback in meiner ersten öffentlichen Klasse hinzufügen, so erscheint kein Duplikat öffentliche cla und nicht erros geben?

XML

<fragment android:id="@+id/maps_fragment" 
android:name="com.google.android.gms.maps.MapFragment" 
android:layout_width="match_parent" 
android:layout_height="match_parent" /> 
+0

Haben Sie eine Karte in Ihrer XML-Datei hinzugefügt? – Eenvincible

+0

poste deine Aktivität XML-Datei –

+0

Du solltest SupportMapFragment verwenden Ich denke – br00

Antwort

0

kann nicht, wo das Problem konnte finden. Lass dich diese Zeilen ausprobieren.

Wenn Sie den OnMapReadyCallback implementieren, müssen Sie die onMapReady-Funktion überschreiben.

public class GetLocationActivity extends AppCompatActivity implements OnMapReadyCallback { 

GoogleMap gMap; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
.... 
... 
. 
gMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.gmap)).getMap(); 
.. 
.. 

} 

@Override 
public void onMapReady(GoogleMap googleMap) { 
// your logic here 
} 

} 

EDITED:

diese Zeilen aus dem Code entfernen. [Entfernen Sie vollständig Ihre zweite Klasse]

Dann machen Sie die erste Klasse, um die onMapReadyCallback zu implementieren.

Kopieren Sie dann die notwendigen Variablen und Logik in Ihre erste Klasse selbst.

// Entfernen Sie die Zeilen aus Ihrem Code.

public class AddPostActivity extends AddPostActivity implements OnMapReadyCallback { 

    private UiSettings mUiSettings; 
    private GoogleMap map; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.add_post_activity); 

     MapFragment fm = (MapFragment) getFragmentManager().findFragmentById(R.id.maps_fragment); 
     fm.getMapAsync(this); 
    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 

     map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
     mUiSettings = map.getUiSettings(); 

     mUiSettings.setCompassEnabled(true); 
     mUiSettings.setMyLocationButtonEnabled(false); 
    } 
    } 

Stattdessen implementieren Sie die gleiche Logik in Ihrer ersten Klasse selbst. Lassen Sie mich für Rückfragen wissen

+0

ich kein getlocationactivity haben, kann ich diese hinzufügen? – mastec2

+0

bitte diesen Code sehen: https://www.dropbox.com/s/8f8oyet57j0ti7n/sddd.txt?dl=0 – mastec2

+0

Fehler auf der SECON öffentlichen Klasse erscheinen, weicht in roter Linie erscheint – mastec2

Verwandte Themen