0

我目前在访问 Hello Mapview 时遇到了一些问题,http://developer.android.com/training/tutorials/views/hello-mapview.html,但我认为我做得正确。我想在单独的活动中显示地图。

地图.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

 <com.google.android.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="working key"
    />

</LinearLayout>

应该显示我的地图的按钮 onclick 事件

public void showMap(View v){

    Intent intent = new Intent(getBaseContext(), GoogleMapsActivity.class);
    startActivity(intent);
}

GoogleMapsActivity.java

public class GoogleMapsActivity extends MapActivity
{
MapView mapView;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.map);

    mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);
}

该活动已添加到我的清单中,包括 Google api 等。如果我将地图放在我的主要活动中,但它不在我的GoogleMapsActivity. 请告诉我我在这里错过了什么。

谢谢

4

2 回答 2

0

问题是我的清单文件中的拼写错误,

<activity android:name=".GoogleMapActivity" /> //missing an "s"
于 2012-06-24T15:59:33.290 回答
0

来自https://developers.google.com/maps/documentation/android/reference/

每个进程只支持一个 MapActivity。同时运行的多个 MapActivity 可能会以意想不到的方式干扰。

基本上,您只能拥有 1 MapActivity,而MapViews 只能托管在 a 中MapActivity。你想要的基本上是不可能的。

编辑:不确定它是否适合您,但您可以尝试标记您的第二个活动,android:process=":remote"看看是否有效,但我对此表示怀疑。

编辑:显然有些混乱。查看https://developers.google.com/maps/documentation/android/reference/com/google/android/maps/MapView。这表明:

MapView 只能由 MapActivity 构造(或膨胀)。这是因为它依赖于在后台访问网络和文件系统的线程;这些线程必须由 MapActivity 中的生命周期管理来引导。切片缓存在应用程序目录中的文件系统上。缓存是自动管理的,因此您无需对其进行任何操作,并且可以随时将其删除。

我将重申:您不能在任何其他活动中显示 MapView。

于 2012-06-24T15:25:40.453 回答