有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在谷歌地图和使用kotlin的地点中实现建议地点或地址?

我想使用kotlin在我的项目中显示建议的位置或地址,但没有看到我的代码中有任何错误,但建议预测对我不起作用。这是我的代码的样子

我的变量

lateinit var mMap: GoogleMap
lateinit var placesClient: PlacesClient
lateinit var predictionList:List<AutocompletePrediction>
lateinit var mLastKnownLocation: Location
lateinit var locationCallback: LocationCallback

private var materialSearchBar: MaterialSearchBar?= null

private var DEFAULT_ZOOM = 18f

var mapView: View? = null
var mFusedLocationProviderClient: FusedLocationProviderClient? = null

这是建议地点或地址的代码顺便说一句,我在我的库中使用搜索栏材料

private fun searchBar() {
        materialSearchBar?.setOnSearchActionListener(object :
            MaterialSearchBar.OnSearchActionListener {
            override fun onSearchStateChanged(enabled: Boolean) {
            }

            override fun onSearchConfirmed(text: CharSequence) {
                startSearch(text.toString(), true, null, true)
            }

            override fun onButtonClicked(buttonCode: Int) {
               }
            }
        })

        materialSearchBar?.addTextChangeListener(object: TextWatcher {
            val token = AutocompleteSessionToken.newInstance()
            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
            }

            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                val predictionsRequest = FindAutocompletePredictionsRequest.builder()
                    .setTypeFilter(TypeFilter.ADDRESS)
                    .setSessionToken(token)
                    .setQuery(s.toString())
                    .build()
                placesClient.findAutocompletePredictions(predictionsRequest).addOnCompleteListener(
                    object : OnCompleteListener<FindAutocompletePredictionsResponse>{
                        override fun onComplete(task: Task<FindAutocompletePredictionsResponse>) {
                            if(task.isSuccessful){
                                val predictionsResponse = task.result
                                if (predictionsRequest != null){
                                    predictionList = predictionsResponse.autocompletePredictions
                                    var suggestionsList: MutableList<String> = ArrayList()
                                    for (element in predictionList){
                                        suggestionsList.add(element.getFullText(null).toString())
                                    }
                                    materialSearchBar?.updateLastSuggestions(suggestionsList)
                                    if (!materialSearchBar!!.isSuggestionsVisible){
                                        materialSearchBar?.showSuggestionsList()
                                    }
                                }
                            }
                            else {
                                Log.i("Prediction", "Prediction fetching task unsuccessful")
                            }
                        }
                    })
            }

            override fun afterTextChanged(s: Editable?) {
            }

        })

共 (0) 个答案