я пытаюсь получить доступ к методу setOnClickListener кнопки очистки, который поступает из Google Place Autocomplete API R.id.place_autocomplete_clear_button.
я нашел ответ здесь: но я получаю сообщение об ошибке, указанное в заголовке
placeAutocompleteFragment?.view?.findViewById(R.id.place_autocomplete_clear_button)
Я знаю, что в Котлине вы можете применить:
apply plugin: 'kotlin-android-extensions'
а затем импортировать его в рабочий класс:
import kotlinx.android.synthetic.main.fragment_add_location.*
Я пробовал R.id.place_autocomplete_clear_button.setOnClickListener(View.OnClickListener{...
но не повезло, неразрешенная ссылка: setOnClickListener
РЕДАКТИРОВАТЬ
Я сделал следующее, но получил NPE:
kotlin.KotlinNullPointerException at com.example.khoi.parkingapp.fragments.AddLocationFragment.clearButton(AddLocationFragment.kt:129)
со следующим кодом:
private fun clearButton() {
placeAutocompleteFragment!!.view!!.findViewById<View>(R.id.place_autocomplete_clear_button)!!
.setOnClickListener {
object : View.OnClickListener {
override fun onClick(v: View?) {
println("cleared")
}
}
}
}
Если у вас есть import kotlinx.android.synthetic.main.fragment_add_location.* «действующий правильно», просто используйте place_autocomplete_clear_button.setOnClickListener {...}
@forpas все еще не работает, Unresolved reference: place_autocomplete_clear_button. я знаю, что расширение работает, потому что я использую его для других своих элементов из макета моего фрагмента
Если у вас есть ссылки на другие представления из fragment_add_location без проблем, а place_autocomplete_clear_button определено в этом макете, но не работает, значит, вы делаете что-то не так. Может ошибся с кнопкой?
@forpas place_autocomplete_clear_button не определен в этом макете. «Place autocomplete API» имеет четкую кнопку, поэтому мне не нужно создавать четкую кнопку. Я просто хочу послушать ответ, когда пользователь нажимает кнопку очистки. Вот изображение этой кнопки i.stack.imgur.com/cAWif.jpg
@forpas я пытаюсь реализовать код из решения здесь: stackoverflow.com/questions/54434834/…
Скидывайте
R.id.и пробуйтеplace_autocomplete_clear_button.setOnClickListener(..