android - 如何给google 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)
}
}
推荐阅读
- java - 从 mvn clean install 尝试时,wiremock 抛出 Nullpointer 但与 eclipse JunitTest 一起工作正常
- laravel - 没有给出完美的结果
- reactjs - React Select 总是重新渲染,即使改变另一个状态
- python - 如何将熊猫中的一列列表转换为Python中唯一值的稀疏DataFrame
- flutter - 第二次进入页面时,无法接收到graphql的数据
- css - Sass 函数简单示例给出错误
- c# - 异步似乎是同步的
- node.js - 如何在 caolan/async queue v3 中暂停流消费
- plantuml - Plant UML 状态图中的状态可以相对于另一个状态定位吗?
- javascript - 在 ngx-linkifyjs 中禁用提及和哈希标记