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);
}
});
}
}
}
Bu sorun çözüldü! Derinden Takdir! @ g2o –
Yardım için sevindim ... lütfen çözülmüş olarak soru işaretleyin;) –
Güzel Cevap :) iyi çalıştı – Mano