0

注意:我不想使用 MapFragment,因为我需要覆盖 MapView 中的一个方法!

我使用以下代码来显示我的 MapView:

mapView = (MapView) view.findViewById(R.id.map);
mapView.onCreate(null);
mapView.onResume();

使用此 xml:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

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

    ...

</RelativeLayout>

这很好用。但是我必须将我的项目导出为 jar(封闭源代码),所以我不能再使用 xml 布局了,对吧?

因为我的布局非常简单,我可以在代码中手动创建它。所以现在我正在使用这个:

mapView = new MapView(context);
mapView.setLayoutParams(
    new LayoutParams(
        LayoutParams.MATCH_PARENT, 
        LayoutParams.MATCH_PARENT
    )
);
view.addView(mapView);
mapView.onCreate(null);

但是我在 onCreate 语句上得到一个 NullPointerException 。

我究竟做错了什么?

4

1 回答 1

0
<?xml version="1.0" encoding="utf-8"?>

<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"
tools:context=".GeoPosActivity"
android:orientation="vertical" >

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myLocationText"
    android:layout_width="match_parent"
    android:layout_height="match_parent"       
    android:orientation="vertical"
    android:text="TEST"
    android:layout_weight="50"
    />

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myMapView"
    android:name="com.google.android.gms.maps.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:enabled="true"
    android:clickable="true"
    android:layout_weight="50"/>

</LinearLayout>

我用这是我的应用程序。它工作,

你为什么使用“.jar”?为了测试您的应用程序,最好使用带有 android 的设备。

于 2013-03-14T14:10:21.543 回答