Проблема с фрагментом поддержки автозаполнения: во время ввода закрывается панель поиска - PullRequest
0 голосов
/ 17 февраля 2020

Я пытался применить Android функцию автозаполнения Google Places с использованием нового SDK Places, выполнив следующие действия:

добавлена ​​зависимость

implementation 'com.google.android.libraries.places:places:2.2.0'
implementation 'androidx.cardview:cardview:1.0.0'

добавлено разрешение

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

at xml file

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:layout_marginTop="5dp"
    app:cardCornerRadius="4dp">
    <fragment
        android:id="@+id/autocomplete_fragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"                                 
     android:name="com.google.android.libraries.places.widget.AutocompleteSupportFragment"/>

</androidx.cardview.widget.CardView>

at my Activity file

// Initialize Places.
Places.initialize(getApplicationContext(), "My API KEY");

// Create a new Places client instance.
PlacesClient placesClient = Places.createClient(this);

// Initialize the AutocompleteSupportFragment.
AutocompleteSupportFragment autocompleteFragment = (AutocompleteSupportFragment) getSupportFragmentManager().findFragmentById(R.id.autocomplete_fragment);

// Specify the types of place data to return.
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));

// Set up a PlaceSelectionListener to handle the response.
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
    @Override
    public void onPlaceSelected(Place place) {
        // TODO: Get info about the selected place.
        //Log.i(TAG, "Place: " + place.getName() + ", " + place.getId());
    }

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

Проблема в том, что я пытаюсь ввести любую клавишу в строке поиска, чтобы закрыть окно поиска.

Примечание: ключ API включен, и после включения ключа API я получил тот же API, который я уже включил в этом проекте для 'Maps SDK для Android'.

Если кто-нибудь получил решение, пожалуйста, предоставить.

Заранее спасибо.

1 Ответ

0 голосов
/ 17 февраля 2020

Этот метод выбора мест уже устарел в 2019 году. Пожалуйста, следуйте последнему, чтобы реализовать этот инструмент, вот ссылка https://developers.google.com/places/android-sdk/client-migration

...