Автозаполнение Google Place не может разрешить поле в Place.Field в совместимой библиотеке - PullRequest
2 голосов
/ 07 марта 2019

Я пытаюсь перейти на новое автозаполнение Place, используя это руководство по миграции, предоставленное Google. Нажмите здесь, чтобы перейти к руководству по миграции .

В этом я следую разделу «Использовать намерение для запуска операции автозаполнения», непосредственно перед Выбор места размещения устарел Раздел.

Когда я использовал реализацию

com.google.android.libraries.places: мест: 1.0.0 '

Новая клиентская библиотека, я не столкнулся с какой-либо проблемой, и место автозаполнения работало просто отлично.Но Мне пришлось перейти в библиотеку совместимости , которая использует

реализацию 'com.google.android.libraries.places: place-compat: 1.0.0 '

, потому что мне тоже нужно использовать указатель мест , и если я использую новую клиентскую библиотеку

внедрение' com.google.android.libraries.places: sites: 1.0.0 '

Я не могу использовать средство выбора мест.

Это код для автозаполнения Place:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);      
      /**
         * Initialize Places. For simplicity, the API key is hard-coded. In a production
         * environment we recommend using a secure mechanism to manage API keys.
         */
        if (!Places.isInitialized()) {
            Places.initialize(getApplicationContext(), "YOUR_API_KEY");
        }
    }


     public void startAutocompleteActivity() {
        // Set the fields to specify which types of place data to return.
        List<Place.Field> fields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

        // Start the autocomplete intent.
        Intent intent = new Autocomplete.IntentBuilder(
                AutocompleteActivityMode.FULLSCREEN, fields)
                .build(this);
        startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);
        }

        /**
         * Override the activity's onActivityResult(), check the request code, and
         * do something with the returned place data (in this example it's place name and place ID).
         */
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
                if (resultCode == RESULT_OK) {
                    Place place = Autocomplete.getPlaceFromIntent(data);
                    Log.i(TAG, "Place: " + place.getName() + ", " + place.getId());
                } else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
                    // TODO: Handle the error.
                    Status status = Autocomplete.getStatusFromIntent(data);
                    Log.i(TAG, status.getStatusMessage());
                } else if (resultCode == RESULT_CANCELED) {
                    // The user canceled the operation.
                }
            }
        }

Так почему же не определены следующие методы и переменные?

  • Places.isInitialized ()

  • Поле в Place.Field
  • Autocomplete и AutocompleteActivityMode in Intent intent = new Autocomplete.IntentBuilder (AutocompleteActivityMode.FULLSCREEN, поля) .build (this);

Android Studio говорит «Невозможно разрешить символ» для вышеупомянутого.И я тоже импортировал правильную библиотеку: import com.google.android.libraries.places.compat.Places;

...