ユーザがアクションバーボタンを押すことでリストフラグメントとマップフラグメントを切り替えることができます。現在、私はそれらの間でスワップすることはできますが、フラグメントから実際のGoogleMapオブジェクトを取得しようとすると、nullポインタが発生しています。カメラを移動しようとすると、GoogleMapオブジェクトがヌルでそのコードをスキップするため移動しません。私は実際にフラグメントからxmlを作成することは決してなく、コードを使用しているに過ぎないのかどうかは分かりません。私のコードは次の通りです:Androidマップ間のスワップv2フラグメントとリストフラグメント
public class MapFragment extends SherlockMapFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = super.onCreateView(inflater, container, savedInstanceState);
return root;
}
}
@Override
public void swapFragments() {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
if (listFragment.isVisible()) {
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
transaction.replace(R.id.root, mapFragment);
} else {
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
transaction.replace(R.id.root, listFragment);
}
transaction.commit();
}
@Override
public void setupMapFragment() {
mapFragment = new MapFragment();
mMap = mapFragment.getMap();
if (mMap != null) {
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
new LatLng(BuzzbabaApplication.latitude,
BuzzbabaApplication.longitude), 14));
}
}
Hmm ...現在、私の主なレイアウトには、別のリストフラグメントを配置するために使用するFrameLayoutがあります。マップフラグメントを配置するのを避けたかったのは、基本的には、何か、これは唯一の選択肢ですか? – egfconnor
Nevermind、onActivityCreatedのMapFragmentにコールバックを追加しました。これは、GoogleMapがnullではなく、準備ができていることを通知します。それはそれを行うための安全な場所のようです。 – egfconnor
ええ、コールバックを追加すると、それについても行く良い方法です。ニースの解決策。 –