Использование AutoComplete.IntentBuilder()
не возвращает место, когда вызывается onActivityResult()
с тем же кодом запроса и статусом результата.
Я поиграл с полями мест, если это связано сничего, кроме неудачи.
class MainActivity : AppCompatActivity() {
private var placeFields = listOf(
Place.Field.ID,
Place.Field.NAME,
Place.Field.ADDRESS,
Place.Field.LAT_LNG
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
initPlaces()
setupPlacesAutocomplete()
}
}
private fun setupPlacesAutocomplete() {
val autocompleteIntent = Autocomplete.IntentBuilder(
AutocompleteActivityMode.FULLSCREEN,
placeFields
).setTypeFilter(TypeFilter.CITIES).build(this)
startActivityForResult(autocompleteIntent, 5)
}
private fun initPlaces() {
Places.initialize(this, getString(R.string.places_api))
val placesClient = Places.createClient(this)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 5) {
if (resultCode == AutocompleteActivity.RESULT_OK) {
val place = Autocomplete.getPlaceFromIntent(intent)
txt.text = place.name
}
}
}
}
Я ожидаю, что OnActivityResult () должен вернуть место, но вместо этого я получаю java.lang.IllegalArgumentException: Intent expected to contain a Place, but doesn't.