Как раз для вашего случая, у Google есть раздел в документации:
Если вы хотите, чтобы ваше приложение использовало другой навигационный поток (например, для запуска процесса автозаполнения с помощью значка, а неполе поиска), ваше приложение может запускать автозаполнение, используя намерение.
В этом случае вам не нужно реализовывать обратные вызовы, пожалуйста, посмотрите на эту страницу и найдитераздел Option 2: Use an intent to launch the autocomplete activity
.
По сути, у вас есть 2 шага, как описано в документации:
1) Используйте PlaceAutocomplete.IntentBuilder для создания намерения, передавая требуемый режим PlaceAutocomplete.Намерение должно вызвать startActivityForResult, передав код запроса, который идентифицирует ваше намерение.
2) Переопределить обратный вызов onActivityResult для получения выбранного места.
Этот код входит в ваш onClickListener
:
try {
Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN).build(this);
startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
} catch (GooglePlayServicesRepairableException e) {
// TODO: Handle the error.
} catch (GooglePlayServicesNotAvailableException e) {
// TODO: Handle the error.
}
Затем вы переопределяете onActivityResult
, просто посмотрите страницу документации, там все очень хорошо объяснено.