在Android 2.3中映射版本2

时间:2013-08-01 11:16:05

标签: android google-maps android-maps android-version

我使用谷歌地图版本2开发了简单的地图应用程序。它在Android 4.0支持的设备上运行良好,但不能在Android 2.3(API 10)中运行。现在我需要从API级别10支持相同的应用程序。如何从API级别10转换应用程序支持?

我的应用程序支持" google-play-services_lib "。

我的代码示例。

main.xml中:

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

java代码:

    public class MainActivity extends Activity implements LocationListener{
        private GoogleMap mMap;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
           ........
       }
}

请帮助我支持API 10(Android 2.3)。

2 个答案:

答案 0 :(得分:4)

您提到API 10

您应该使用SupportMapFragment代替MapFragment

<fragment
class="com.google.android.gms.maps.SupportMapFragment"
android:id="@+id/map"  
android:layout_width="match_parent"
android:layout_height="match_parent"/>

您的活动还必须延长FragmentActivity

SupportMapFragment fm = (SupportMapFragment)  getSupportFragmentManager().findFragmentById(R.id.map);
mMap = fm.getMap(); 

导入

import android.support.v4.app.FragmentActivity;  
import com.google.android.gms.maps.SupportMapFragment; 

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/MapFragment

检查主题开发人员指南

上方的行

答案 1 :(得分:1)

更改为

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

extends FragmentActivity

mMap =((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map)).getMap();mMap