当我创建使用谷歌地图API v2的项目时,我有这一行的问题。
GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap ();它说我需要将minSDK设置为最小11,但我想在android minSDK 8(2.3.3)的设备上也使用此应用程序。什么好主意吗?或者简单地说:我如何将google maps API v2设置为与minSDK 8设备兼容。
谢谢
使用FragmentActivity
中的SupportMapFragment
,而不是Activity
中的MapFragment
。要在API Level 11之前的设备上使用fragments,你需要使用Android Support包的fragments backport (FragmentActivity
的来源)。
http://android-er.blogspot.de/2012/12/using-supportmapfragment.html -小示例
<RelativeLayout 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"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world" />
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
</RelativeLayout>
:
package de.meinprospekt.android.ui;
import java.text.SimpleDateFormat;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Fragment fragment = getSupportFragmentManager().findFragmentById(
R.id.map);
SupportMapFragment mapFragment = (SupportMapFragment) fragment;
GoogleMap mMap = mapFragment.getMap();