2016-03-22 23 views
3

Ben android stüdyo programlama için bir acemi, ben birden fazla fragman var, ve özellikle bir navigasyon çekmecede Google Maps (hedef, rota ve daha fazla ayarlama) ile çalışmaya çalışıyorum Google haritaları için, işaretçileri kullanmakta ve onMapReady() yöntemiyle harita üzerinde çalışmakta zorluk çekiyordum, bunun yerine onActivityCreated() yöntemini kullanmam gerektiğini buldum, ancak bir kez çalışmaya başladığımda, bana şu hatayı vermeye başladı: : Dönüştürülemeyen türler android.app.Fragment'u com.google.android.gms.maps.SupportMapFragment'a gönderemez. Aşağıdaki kod satırında: mapFragment = (SupportMapFragment) fm.findFragmentById(R.id.map); yanıma bana ikinci bir hata verir: Yanlış 2. bağımsız değişken türü, Bulunan: com.google.android.gms.maps.SupportMapFragment Gerekli: fm.beginTransaction().replace(R.id.map, mapFragment).commit(); aşağıdaki satırda android.app.Fragment. Ne yazık ki bu soruna bir cevap veya çözüm bulamadım ve yardımın için minnettarım.Değiştirilemez tipler; android.app.fragment yapamazsınız

package demo.mapas; 

import android.app.Fragment; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
//import android.support.v4.app.FragmentManager; 
import android.app.FragmentManager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.example.usuario.mapas.R; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 

/** 
* Created by USUARIO on 3/12/2016. 
*/ 
public class opcion1Fragment extends Fragment { 
    private SupportMapFragment mapFragment; 




    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_option1, container, false); 

     return rootView; 

    } 

    @Override 

    public void onActivityCreated(Bundle savedInstanceState){ 
     super.onActivityCreated(savedInstanceState); 

     FragmentManager fm = getChildFragmentManager(); 
     mapFragment = (SupportMapFragment) fm.findFragmentById(R.id.map); 
     if(mapFragment == null){ 
      mapFragment = SupportMapFragment.newInstance(); 
      fm.beginTransaction().replace(R.id.map, mapFragment).commit(); 
     } else { 
      mapFragment.getMapAsync(new OnMapReadyCallback() { 

       @Override 
       public void onMapReady(GoogleMap googleMap) { 
        googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); 

       } 
      }); 
     } 
    } 

} 

cevap

7

Sizin opcion1Fragmentandroid.app.Fragment; uzanan edilir:

İşte haritası bulunduğu fragman için benim tam koddur. Ancak, sınıfı android.support.v4.app'dan kullanmanız gerekir.

  1. Değişim adresinin ithalat: import android.app.Fragment;
  2. import android.support.v4.app.Fragment; için import android.support.v4.app.FragmentManager;

için import android.app.FragmentManager; adresinin ithalat değiştirin Ve senin sorunun giderilecektir Yani gerekiyor.

Bu yardımcı olur umarım!

+0

Bu sorun çözüldü! Derinden Takdir! @ g2o –

+0

Yardım için sevindim ... lütfen çözülmüş olarak soru işaretleyin;) –

+0

Güzel Cevap :) iyi çalıştı – Mano

İlgili konular