0

XML を拡張する際に解析上の問題が発生した後、プログラムによる回避策を実行することにしました。マップはシーンに正しく追加されていますが、後で使用するためにクラス メンバーとしてキャッシュするのに問題があります。爆発点を含むコード スニペットを次に示します。

アクティビティ:

public class MoogliActivity extends FragmentActivity {

public void onCreate(final Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  this.setContentView(R.layout.main);
  final SupportMapFragment supportMap = SupportMapFragment.newInstance();
  final FragmentTransaction fragmentTransaction = this.getSupportFragmentManager()
            .beginTransaction();
 fragmentTransaction.add(R.id.maplayout, supportMap);
 fragmentTransaction.commit();
 mGoogleMap = supportMap.getMap(); // mGoogleMap = null after this
 // mGoogleMap.setMyLocationEnabled(true); Obviously NullPointerException
}

}

main.xml

<RelativeLayout
    android:id="@+id/maplayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignBottom="@+id/tracking"
    android:layout_below="@id/header" />
4

1 に答える 1

0

このコード:

mGoogleMap = supportMap.getMap();

onCreate の後に呼び出す必要があります。このように onResume() を試してください。

@Override
protected void onResume() {
    super.onResume();

    // here it should work
    mGoogleMap = supportMap.getMap(); 

    // In case Google Play services has since become available.
    setUpMapIfNeeded();
}
于 2013-01-19T18:59:33.933 に答える