我一直在网站上寻找这个简单的问题而没有找到答案 我认为这是非常通用的需求 假设您有两个下拉列表 您想要填写一个国家/地区列表,并且一旦您选择了一个国家/地区,就可以填充另一个国家/地区列表。 甚至可以使用Google Places API吗? 干杯:)
答案 0 :(得分:2)
不,使用Places API是不可能的。
您有两种选择: 使用另一个数据库
有一些国家/州名单的免费数据库。有关示例,请查看以下问题:
List of Cities by Country
https://raw.githubusercontent.com/David-Haim/CountriesToCitiesJSON/master/countriesToCities.json
在每个国家/地区创建自己的州数据库。不推荐,因为这会浪费宝贵的时间。
答案 1 :(得分:0)
是的,这是可能的
以下代码可用于根据过滤器获取状态
IN 是国家代码,仅在印度搜索时需要此代码
REGIONS 是我们搜索时获取状态的过滤器
需要有效的 Places API 密钥
val fields = listOf(Place.Field.ID, Place.Field.NAME)
searchLocationForCreatePost = findViewById(R.id.searchLocationForCreatePost)
if (!Places.isInitialized()) {
Places.initialize(getApplicationContext(), getString(R.string.api_key), Locale.US);
}
searchLocationForCreatePost.setOnClickListener {
val intent = Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, fields)
.setCountry("IN")
.setTypeFilter(TypeFilter.REGIONS)
.build(this)
startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE)
}
-------'
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
when (resultCode) {
Activity.RESULT_OK -> {
data?.let {
val place = Autocomplete.getPlaceFromIntent(data)
Log.i("TAG", "Place: ${place.name}, ${place.id}")
}
}
AutocompleteActivity.RESULT_ERROR -> {
// TODO: Handle the error.
data?.let {
val status = Autocomplete.getStatusFromIntent(data)
Log.i("TAG", status.statusMessage.toString())
}
}
Activity.RESULT_CANCELED -> {
// The user canceled the operation.
}
}
return
}
super.onActivityResult(requestCode, resultCode, data)
}