1

私のアプリケーションでは、Google マップをプログラムで使用していますが、getMap() を呼び出すと null が返されます。onActivityCreated() を試してみましたが、それでも null を返します。誰かが私を助けてください..これが私のコードです

public void callMap() {
        try {
            int status = GooglePlayServicesUtil
                    .isGooglePlayServicesAvailable(mActivity);
            if (status == ConnectionResult.SUCCESS) {
                Log.d("sreedhu", "Google Play Service Available");
                gmo = (new GoogleMapOptions()).zoomControlsEnabled(true)
                        .rotateGesturesEnabled(true);
                mapFragment = SupportMapFragment.newInstance(gmo);
                map=mapFragment.getMap();   
                manager=getFragmentManager();
                FragmentTransaction fragmentTransaction = manager
                .beginTransaction();
                fragmentTransaction.add(R.id.mapFragmentHole, mapFragment);
                fragmentTransaction.commit();           
                manager.executePendingTransactions();
                            mapFragment=getMap();
            } else if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
                ErrorDialogFragment.newInstance(status).show(
                        getFragmentManager(), "errorDialog");
            } else {
                Toast.makeText(mActivity, "Google Map v2 not available",
                        Toast.LENGTH_LONG).show();
                mActivity.popFragments();
            }

        } catch (Exception e) {
            Log.d("sreedhu", "play" + e.toString());
        }



    }
4

2 に答える 2

1

最後に、私はこの問題の修正を取得しました...

私の問題を解決した onCreateView の以下のスニペットを含めます。

SupportMapFragment mFragment;
     mFragment = new SupportMapFragment() {
                @Override
                public void onActivityCreated(Bundle savedInstanceState) {
                    super.onActivityCreated(savedInstanceState);
                    if ((map = mFragment.getMap()) != null) {
                        setUpMap();
                    }
                }
            };

マップが準備されると、SuppotMapFragment の onActivityCreated がそこで呼び出され、マップをセットアップできます。

于 2014-05-12T03:20:59.847 に答える
1

executePendingTransactions は、期待どおりに機能しないようです。

コードから MapFragment を作成すると、その onCreateView が呼び出されるまで GoogleMap を取得できません。

map=mapFragment.getMap();onStart または onResume で、その後のすべてのコードを呼び出す必要があります。

于 2013-04-14T14:20:28.583 に答える