Kotlin - прослушиватель кнопки «Очистить» для API автозаполнения Google PlaceClick не вызывается - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь создать прослушиватель для кнопки очистки, получаемой из API автозаполнения Google Place.я вызвал мой метод clearButton() в методе onViewCreated моего фрагмента

clearButton ()

placeAutocompleteFragment?.view?.findViewById<View>(R.id.place_autocomplete_clear_button)
    ?.setOnClickListener {
        View.OnClickListener {
            Log.d(TAG, "Cleared")
            it?.findViewById<EditText>(R.id.place_autocomplete_search_input)?.setText("")
            it?.visibility = View.GONE
        }
    }

теперь, когда я нажимаю на иконку очистки, текстне стирается, ничего не происходит.Я все еще могу напечатать в новом месте, хотя, но я не могу очистить его.мой Log.d тоже не отображается.

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Разобрался.У меня все вызовы методов настроены неправильно.

Вот как это должно выглядеть:

private fun clearButton() {
    placeAutocompleteFragment?.view?.findViewById<View>(R.id.place_autocomplete_clear_button)?.setOnClickListener {
        Log.d(TAG, "Cleared Button Clicked")
        it.visibility = View.GONE
        //do something
    }
}
0 голосов
/ 02 марта 2019

У меня сейчас нет андроид студии на этой машине, чтобы попробовать, но я думаю, вы можете сделать что-то вроде

place_autocomplete_clear_button.onClick { place_autocomplete_search_input.text = "" }

, где place_autocomplete_clear_button может быть статическим импортом, а onClick может быть из anko

...