java - 能否从片段类内部调用PlaceAutocompleteFragment(覆盖模式)

标签 java android-fragments autocomplete widget

我正在开发我的项目,以创建一个带有抽屉导航的 Activity (扩展 AppCompatActivity),用于在多个片段之间切换,其中一个是带有 MapView 实现的 MapFragment(扩展片段)。 我想在 MapFragment 类中调用 Google 提供的自动完成小部件。

这是我在 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);

Inconvertible type; cannot cast 'android.support.v4.app.Fragment' to 'com.google.android.gms.location.places.ui.PlaceAutocompleteFragment'

但是当我把这组代码放在 MainActivity 中时,它工作得很好。 所以我想知道是否有任何方法可以在 Fragment 中调用 AutoComplete Widget,但它不能。

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

最佳答案

使用 getActivity()

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

关于java - 能否从片段类内部调用PlaceAutocompleteFragment(覆盖模式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036743/

相关文章:

java - 从 Activity 中调用 fragment 中的非静态方法?

javascript - jQuery:如何修改函数内的变量

elasticsearch - Elasticsearch 中的自动完成

java - 变量不会增加,从静态方法调用非静态方法

java - 按优先级调度周期性线程

java - 使用 Jaxb API 将 XML 解码为 Java 对象时获取 NullPointerException

ssh - zsh 完成 : Disable ssh username completion

java - UserTransaction.rollback 异常 HHH000451

Android fragment 翻译从右到左

android - 使用可观察的 ScrollView 时,如何让我的选项卡 View 填满整个屏幕?