Получить доступ к прослушивателю результатов SupportPlaceAutocompleteFragment - PullRequest
0 голосов
/ 10 октября 2018

Google SupportPlaceAutocompleteFragment имеет прослушиватель, когда адрес во фрагменте выбран с помощью: autocompleteFragment.setOnPlaceSelectedListener

Но он работает только тогда, когда наложение результатов закрыто, и вы имеете дело с этими результатами.Моя цель - перехватить клик по результату на ранней стадии.

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

Возможное решение состоит в том, чтобы программно получать прогнозы мест и обрабатывать все пользовательские интерфейсы самостоятельно, но надеялся на более легкий путь.

1 Ответ

0 голосов
/ 10 октября 2018

Довольно грязный, но рабочий раствор.

Если тип места - маршрут - снова вызвать фрагмент автозаполнения места

autocompleteFragment.setOnPlaceSelectedListener(object : PlaceSelectionListener {
        override fun onPlaceSelected(place: Place) {
            if (place.placeTypes.first() == Place.TYPE_ROUTE) {
                autocompleteFragment.view?.findViewById<EditText>(R.id.place_autocomplete_search_input)?.performClick()
            }
        }

        override fun onError(status: Status) {
            error("An error occurred: $status")
        }
    })
...