这是一个类似的问题:MapFragment in Action Bar Tabs但是我理解并没有明确的答案。我是Android新手,这是我开发的第一个应用程序。
我目前有一个MainActivity可为Google Maps v2创建MapFragment
。并在ActionBar下显示地图,如in this screenshot
我的目标是为Eclipse中的MainActivity实现标签(不使用FragmentActivity
或支持库,因为我的应用程序为minSdkVersion=11
),目前为Google Maps v2创建MapFragment
。
MainActivity.java代码段
public class MainActivityextends Activity
implements LocationListener, LocationSource, OnMarkerClickListener, OnInfoWindowClickListener {
private static GoogleMap googleMap;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); //Change to Tab mode
....
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
的 map.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
layout="@layout/map_fragment" />
</LinearLayout>
的 map_fragment.xml
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraTargetLat="53.78513542767"
map:cameraTargetLng="-3.14948167651"
map:cameraZoom="14" />
Eclipse使用支持库为Activity设置了一个选项卡,因此在使用MapFragment
时它给了我一个错误(下面),并且我还原为不使用选项卡。我认为原因是here
Caused by: java.lang.ClassCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.support.v4.app.Fragment
我需要使用标签,因为目前只开发了一个页面/活动,我需要一种方法来向用户和地图显示过滤器。用户将切换到相邻选项卡以编辑过滤器,并能够切换回“地图”选项卡,然后拾取过滤器并更改地图上的标记。
如此简短的问题是否有一种简单的方法可以为MainActivity.java实施标签?如果这不清楚,请问我具体细节,但这对我来说非常先进
答案 0 :(得分:0)
尝试使用SupportMapFragment而不是MapFragment:
<强> map.xml 强>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraTargetLat="53.78513542767"
map:cameraTargetLng="-3.14948167651"
map:cameraZoom="14" />