首页 > 解决方案 > 无法解析符号“PlaceBuilder”

问题描述

我得到错误

无法解析符号“PlaceBuilder”

当它在我的 PlaceAutocompleteAdapter 中使用时。如果这是由于com.google.android.gms.location.places.PlaceBuffer已弃用的事实。

如果这是原因,我该如何更新我的代码?

private AdapterView.OnItemClickListener mAutoCompleteClickListener = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            hideSoftKeyboard();

            final String placeId = mPlaceAutocompleteAdapter.getItem(i).getPlaceId();

            PendingResult<PlaceBuilder> placeResult = Places.GeoDataApi
                    .getPlaceById(mGoogleApiClient, placeId);
            placeResult.setResultCallback(mUpdatePlaceDetailsCllback);

        }
    };

    private ResultCallback<PlaceBuffer> mUpdatePlaceDetailsCllback = new ResultCallback<PlaceBuffer>() {
        @Override
        public void onResult(@NonNull PlaceBuffer places) {
            if(!places.getStatus().isSuccess()){
                Log.d(TAG, "onResult: Place query did not complete successfully: " + places.getStatus().toString());
                places.release();
                return;
            }
            final Place place = places.get(0);

            try{
                mPlace = new PlaceInfo();
                mPlace.setName(place.getName().toString());
            }catch (NullPointerException e){
                Log.e(TAG, "onResult: NullPointerException: " + e.getMessage());
            }

            if (mPlace!=null){
                moveCamera(mPlace.getLatlng(), DEFAULT_ZOOM, mPlace.getName());
            }

            places.release();
        }
    };

标签: javaandroidgoogle-mapsgoogle-places-api

解决方案


PlaceBuffer 确实已被弃用。请按照 Google 的指南迁移到适用于 Android 的新 Places SDK https://developers.google.com/places/android-sdk/client-migration

希望这可以帮助!


推荐阅读