如何给Google Places api一个字符串形式的位置,并让它返回一个位置数组?

问题描述 投票:0回答:1

我只是想给Google Places一个字符串,并获取一个地方列表作为回报我不想使用自动填充片段

android kotlin google-places-api
1个回答
0
投票

使用此功能初始化Places 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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.