PlaceAutocompleteFragment

PlaceAutocompleteFragment

我正在我的项目上创建一个带有导航抽屉的 Activity (扩展AppCompatActivity),用于在多个Fragment之间切换,其中一个是具有MapView实现的MapFragment(扩展Fragment)。 我想在MapFragment类内调用Google提供的AutoComplete Widget。

这是我在MapFragment类中的代码

    PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
            getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);

    AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
            .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS)
            .build();
    autocompleteFragment.setFilter(typeFilter);

    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(Place place) {
            // TODO: Get info about the selected place.
            String placeDetailsStr = place.getName() + "\n"
                    + place.getId() + "\n"
                    + place.getLatLng().toString() + "\n"
                    + place.getAddress() + "\n"
                    + place.getAttributions();
            Log.i("OnPlaceSelected", placeDetailsStr);
            map.moveCamera(CameraUpdateFactory.newLatLngZoom(place.getLatLng(), 15));

        }

        @Override
        public void onError(Status status) {
            // TODO: Handle the error.
            Log.i("OnPlaceSelected", "An error occurred: " + status);
        }
    });

语法错误在
PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);


不可转换类型;无法将“android.support.v4.app.Fragment”转换为“com.google.android.gms.location.places.ui.PlaceAutocompleteFragment”

但是,当我将这组代码放入MainActivity中时,它可以正常工作。 因此,我想知道是否有任何方法可以在Fragment中调用AutoComplete Widget,但这是不可能的。

任何答案将不胜感激。 :)

最佳答案

使用getActivity()

    PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) getActivity().getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);

10-06 02:18