5

我在网站上一遍又一遍地寻找这个简单的问题,但没有找到答案我认为这是非常普遍的需求假设你有两个下拉列表一个你想用国家列表填充,还有一次你已经选择了一个 - 用它的区域列表填充另一个。甚至可以使用 Google Places API 吗?干杯:)

4

2 回答 2

5

不,使用 Places API 是不可能的。

您有 2 个选项: 使用另一个数据库

有一些免费的国家/州列表数据库。请查看以下问题以获取一些示例:

List of Cities by Country
https://raw.githubusercontent.com/David-Haim/CountriesToCitiesJSON/master/countriesToCities.json

创建自己的数据库

创建您自己的每个国家/地区的州数据库。不推荐,因为这会浪费宝贵的时间。

于 2013-03-20T06:50:05.943 回答
0

对的,这是可能的

  1. 下面的代码可用于根据过滤器获取状态

  2. IN 是仅在印度搜索所需的国家代码

  3. REGIONS 是我们搜索时获取状态的过滤器

  4. 需要有效的 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)
     }
    

  • 在 onActivityResult 中获取结果 -

--------'

  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)
}
于 2021-01-08T18:58:25.367 回答