android kotlin - как добавить прослушиватель кликов к адаптеру RecyclerView

, почему я не могу получить доступ к теневой переменной в методе inTestOne () с ключевым словом this это в строке 8

Поскольку x является не переменная-член класса; это локальная переменная . Ключевое слово this можно использовать для доступа к полям членов класса, а не локальным переменным.

Как только переменная затенена, у вас нет доступа к ней. Это нормально, потому что переменная и локальный внутренний класс являются вашими изменениями; если вы хотите получить доступ к теневой переменной, все, что вам нужно сделать, это переименовать ее (или переименовать переменную, которая ее тень, что имеет для вас больше смысла).

Примечание. Не забудьте отметить локальная переменная final, иначе вы не сможете получить доступ к ней, даже если она не затенена.

-2
задан Navid Abutorab 16 January 2019 в 15:00
поделиться

1 ответ

lateinit var mClickListener: ClickListener

fun setOnItemClickListener(aClickListener: ClickListener) {
    mClickListener = aClickListener
}

interface ClickListener {
    fun onClick(pos: Int, aView: View)
}

inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), View.OnClickListener {
    override fun onClick(v: View) {
        mClickListener.onClick(adapterPosition, v)
    }
    val tvTitle = itemView.findViewById<TextView>(R.id.tv_cat_title)

    init {
        itemView.setOnClickListener(this)
    }
}

и в своей деятельности просто внедрите прослушиватель щелчков

adapter.setOnItemClickListener(object : Adapter.ClickListener {
                            override fun onClick(pos: Int, aView: View) {

   }
})
0
ответ дан Bhoomin Naik 16 January 2019 в 15:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: