0

Привет ребят здесь новый извините, если я делаю что-то неправильноНевозможно отобразить карту в FragmentActivity

Так что я хочу, чтобы отобразить карту и мой код работает отлично в одиночку, но когда я копирую/мимо него в моем приложении фрагмент, карта не появляется!

Это мой код вида деятельности:

package com.example.lokman.tryouts; 

import android.app.Dialog; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.widget.Toast; 

import com.google.android.gms.common.ConnectionResult; 
import com.google.android.gms.common.GooglePlayServicesUtil; 
import com.google.android.gms.common.api.GoogleApiClient; 
import com.google.android.gms.location.LocationServices; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 
import com.parse.FindCallback; 
import com.parse.Parse; 
import com.parse.ParseObject; 
import com.parse.ParseQuery; 

import java.util.List; 

public class FragmentTab3 extends FragmentActivity implements 
     GoogleApiClient.ConnectionCallbacks, 
     GoogleApiClient.OnConnectionFailedListener 
{ 
    private static final int GPS_ERRORDIALOG_REQUEST = 9001; 
    GoogleMap mMap; 
    @SuppressWarnings("unused") 
    private static final double 


    GoogleApiClient googleApiClient; 




    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Parse.enableLocalDatastore(this); 
     Parse.initialize(this, "gj36VxUgttoM2BxT0YF65ABEIXxKJn8a6Synb3Bj", "UoVZa1wOUYFGvMwDPyyrDbj0pGEKYGvdz2dmrmiB"); 

     if (servicesOk()) { 
      setContentView(R.layout.fragmenttab3); 
      ParseQuery<ParseObject> query = ParseQuery.getQuery("Lieu"); 
      query.findInBackground(new FindCallback<ParseObject>() { 
       @Override 
       public void done(List<ParseObject> arg0, com.parse.ParseException e) { 
        if (e == null) { 
         for (ParseObject item : arg0) { 
          String title = item.getString("name"); 
          Double lat = (Double) item.getNumber("latitude"); 
          Double lng = (Double) item.getNumber("longitude"); 
          MarkerOptions marker = new MarkerOptions() 
            .position(new LatLng(lat, lng)) 
            .title(""+title); 
          mMap.addMarker(marker); 

         } 
        } 

       } 
      }); 

      if(initMap()){ 
       mMap.setMyLocationEnabled(true); 

       googleApiClient = new GoogleApiClient.Builder(this) 
         .addConnectionCallbacks(this) 
         .addOnConnectionFailedListener(this) 
         .addApi(LocationServices.API) 
         .build(); 
       googleApiClient.connect(); 

      } 
      else{ 
       Toast.makeText(this, "Map Is Not Avaible !", Toast.LENGTH_SHORT).show(); 

      } 


     } else { 
      setContentView(R.layout.activity_main); 

     } 

    } 

    public boolean servicesOk(){ 
     int isAvaible = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); 
     if (isAvaible == ConnectionResult.SUCCESS) { 
      return true; 
     } 
     else if (GooglePlayServicesUtil.isUserRecoverableError(isAvaible)) { 

      Dialog dialog = GooglePlayServicesUtil.getErrorDialog(isAvaible, this, GPS_ERRORDIALOG_REQUEST); 
      dialog.show(); 
     } 
     else { 
      Toast.makeText(this,"Can't Connect to google play services !",Toast.LENGTH_SHORT).show(); 
     } 
     return false; 
    } 

    private boolean initMap(){ 
     if (mMap == null){ 
      SupportMapFragment mapFragment = 
        (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); 
      mMap = mapFragment.getMap(); 
     } 
     return(mMap != null); 


    } 





    @Override 
    public void onConnected(Bundle bundle) { 
     Toast.makeText(this,"Connected TO Location Service !",Toast.LENGTH_SHORT).show(); 


    } 

    @Override 
    public void onConnectionSuspended(int i) { 

    } 


    @Override 
    public void onConnectionFailed(ConnectionResult connectionResult) { 

    } 



} 

ответ

0

Если бы подобный вопрос. Вы можете попробовать это. Изменить getSupportFragmentManager на GetChildFragmentManager

private boolean initMap(){ 
    if (mMap == null){ 
     SupportMapFragment mapFragment = 
       (SupportMapFragment) getActivity().getChildFragmentManager().findFragmentById(R.id.map); 
     mMap = mapFragment.getMap(); 
    } 
    return(mMap != null); 


} 
+0

Невозможно восстановить «getChildFragmentManager»? что я должен изменить? –

+0

try SupportMapFragment mapFragment = (SupportMapFragment) getActivity(). GetChildFragmentManager(). FindFragmentById (R.id.map); –

+0

Я отредактировал ответ –

Смежные вопросы