我正在尝试显示谷歌地图,我没有使用过很多碎片,所以我怀疑这是我的问题所在..
我的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
我做错了什么?
答案 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