Kotlin - не удалось определить тип для findViewById

я пытаюсь получить доступ к методу 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")
                }
            }
        }
}

Скидывайте R.id. и пробуйте place_autocomplete_clear_button.setOnClickListener(..

forpas 01.03.2019 19:37

Если у вас есть import kotlinx.android.synthetic.main.fragment_add_location.* «действующий правильно», просто используйте place_autocomplete_clear_button.setOnClickListener {...}

Onik 01.03.2019 19:38

@forpas все еще не работает, Unresolved reference: place_autocomplete_clear_button. я знаю, что расширение работает, потому что я использую его для других своих элементов из макета моего фрагмента

Barcode 01.03.2019 19:57

Если у вас есть ссылки на другие представления из fragment_add_location без проблем, а place_autocomplete_clear_button определено в этом макете, но не работает, значит, вы делаете что-то не так. Может ошибся с кнопкой?

forpas 01.03.2019 20:00

@forpas place_autocomplete_clear_button не определен в этом макете. «Place autocomplete API» имеет четкую кнопку, поэтому мне не нужно создавать четкую кнопку. Я просто хочу послушать ответ, когда пользователь нажимает кнопку очистки. Вот изображение этой кнопки i.stack.imgur.com/cAWif.jpg

Barcode 01.03.2019 20:03

@forpas я пытаюсь реализовать код из решения здесь: stackoverflow.com/questions/54434834/…

Barcode 01.03.2019 20:08
0
6
161
0

Другие вопросы по теме