首页 > 解决方案 > 如何给google places api一个地方作为字符串并让它返回一个地方数组?

问题描述

我只是想给谷歌地方一个字符串并得到一个地方列表作为回报我不想使用自动完成片段

标签: androidkotlingoogle-places-api

解决方案


使用此函数初始化地点 API 后

  private fun initPlaces() {
    Places.initialize(context!!, getString(R.string.placesApiKey))
    placesClient = Places.createClient(context!!)
    autocompleteSessionToken = AutocompleteSessionToken.newInstance()

}     

您可以在从 edittext 或任何 getSuggestion 函数获取查询字符串后简单地发送查询字符串

private fun getSuggestions(query: String) {
    var findAutocompletePredictionsRequest=FindAutocompletePredictionsRequest
            .builder()
            .setSessionToken(autocompleteSessionToken)
            .setTypeFilter(TypeFilter.ADDRESS)
            .setQuery(query)
            .build()         placesClient!!.findAutocompletePredictions(findAutocompletePredictionsRequest).addOnCompleteListener(OnCompleteListener {
          if(it.isSuccessful){
              Log.d(TAG, "getSuggestions: -----------------------SUCCESS")
              var predictionsResponse=it.result
              predictionList=predictionsResponse!!.autocompletePredictions
              createList()


          }
          }
      })

}

之后,您可以使用返回的列表来填充 recyclerview 或任何您想要的

private fun createList() {
    var suggestionsStringArray =Array<String>(predictionList!!.size){""}
    if(predictionList!!.isNotEmpty()){
        for (i in predictionList!!.indices){
            suggestionsStringArray[i] = predictionList!![i].getFullText(null).toString()
        }
        populateAdapter(suggestionsStringArray)
    }
}

推荐阅读