Google map v2 android метод getMap() возвращает ноль

В моем приложении я использую карту Google программно, но когда я вызываю getMap(), он возвращает ноль. даже я пробовал onActivityCreated(), но все равно он возвращает ноль. кто-нибудь, пожалуйста, помогите мне.. Вот мой код,

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());
        }



    }

2 ответа

Наконец-то я получил решение этой проблемы...

Я включил этот фрагмент кода в onCreateView, который решил мою проблему,

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

Как только карта подготовлена, будет вызван метод onActivityCreated SuppotMapFragment, и вы сможете настроить карту.

executePendingTransactions не работает так, как вы ожидаете.

Когда MapFragment создается из кода, вы не получите из него GoogleMap, пока не будет вызван его onCreateView.

Вам нужно позвонить map=mapFragment.getMap(); и весь код после него в onStart или onResume.

Другие вопросы по тегам