不可转换的类型; 无法投射android.app.fragment

Ari*_*ara 4 android google-maps android-fragments android-studio

我是Android工作室编程的新手,我正试图在导航抽屉中使用谷歌地图(设置目的地,路线等),我有多个片段,一个专门用于谷歌地图,我遇到了麻烦使用标记并使用该onMapReady() 方法在地图上工作,我能够找到相反我应该使用该onActivityCreated()方法,但是一旦我开始处理它,它就开始给我以下错误:Inconvertible类型,无法转换android.app.Fragmentcom.google.android.gms.maps.SupportMapFragment.在下面的代码行中:mapFragment = (SupportMapFragment) fm.findFragmentById(R.id.map);同样给出了第二个错误:错误的第二个参数类型,Found:com.google.android.gms.maps.SupportMapFragment必需:android.app.Fragment在以下代码行中:fm.beginTransaction().replace(R.id.map, mapFragment).commit();.不幸的是,我还没有找到这个问题的答案或解决方案,并将感谢您的帮助.

这是我的地图所在片段的完整代码:

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);

                }
            });
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

Gue*_*gon 11

opcion1Fragment正在延伸android.app.Fragment;.但是你需要使用来自的类android.support.v4.app.所以你需要:

  1. 将导入从:更改import android.app.Fragment;import android.support.v4.app.Fragment;
  2. 将导入更改import android.app.FragmentManager;import android.support.v4.app.FragmentManager;

你的问题将得到解决.

希望这可以帮助!!