显示带有片段/活动的谷歌地图

时间:2014-03-24 17:15:50

标签: android

我正在尝试显示谷歌地图,我没有使用过很多碎片,所以我怀疑这是我的问题所在..

我的LocatorMap.java的java类是:

public class LocatorMap extends Fragment {

    MapView m;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
            Bundle savedInstanceState) {
        // inflat and return the layout
        View v = inflater.inflate(R.layout.activity_locator_map, container, false);
        m = (MapView) v.findViewById(R.id.mapView);
        m.onCreate(savedInstanceState);

        return v;
    }

    @Override
    public void onResume() {
        super.onResume();
        m.onResume();
    }

    @Override
    public void onPause() {
        super.onPause();
        m.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        m.onDestroy();
    }

    @Override
    public void onLowMemory() {
        super.onLowMemory();
        m.onLowMemory();
    }

我的活动xml是:

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/mapView" />

我试图提出这样的观点:

Intent intent = new Intent(getApplicationContext(), LocatorMap.class);
    startActivity(intent);  

当我这样做时,我得到:

Unable to instantiate activity ComponentInfo{my package name.LocatorMap}

cannot cast to android.app.Activity

我做错了什么?

1 个答案:

答案 0 :(得分:1)

public class LocatorMap extends Fragment {

它不是一个Activity类,你不能使用

Intent intent = new Intent(getApplicationContext(), LocatorMap.class);
startActivity(intent); 

您需要的是活动布局中添加片段的容器。

更多信息

http://developer.android.com/guide/components/fragments.html

通常,容器是FrameLayout。在活动xml中添加标识为FrameLayout的{​​{1}},并在Activity类中包含以下代码。

fragment_container