У меня определена следующая функция onBindViewHolder:
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = getItem(position)
context=this.context
item.address="Otra dir"
item.clickListener=View.OnClickListener {
/* Code to do on clickListener*/
}
holder.bind(item)
}
Все, что я пытаюсь установить в / * Код для clickListener * / никогда не срабатывает.
Я пробовал, например, чтобы установить следующий код:
Toast.makeText(this.context,"test",Toast.LENGTH_LONG).show()
Navigation.findNavController(holder.itemView)
.navigate(R.id.loginFragment, bundleOf(REQUEST_ID to item.id))
Также пытаюсь показать только тост и т. д.
Но что бы я ни делал, он никогда не реагирует на onClickListener.
С другой стороны, адрес элемента.адрес изменил свой адрес значения на новое значение, отличное от исходного:
Модель для элемента определяется следующим образом:
data class Asset(val id: Int?, val name: String?, var address: String?, var clickListener:View.OnClickListener)
Начальные значения для Актива были определены следующим образом:
private val resources = LockApp.instance.resources
init {
viewModelScope.launch {
_showLoading.postValue(true)
delay(3000)
_assets.postValue(
listOf(
Asset(1, "Nombre 1", "Dirección 1", View.OnClickListener { }),
Asset(2, "Nombre 2", "Dirección 2", View.OnClickListener { }),
Asset(3, "Nombre 3", "Dirección 3", View.OnClickListener { }),
Asset(4, "Nombre 4", "Dirección 4", View.OnClickListener { }),
Asset(5, "Nombre 5", "Dirección 5", View.OnClickListener { })
)
)
_showLoading.postValue(false)
}
}
Как уже говорилось, "Dirección [число]" заменено на "Otra dir", поэтому я не могу gr asp почему "View.OnClickListener {}" не изменяется тем, который я установил.
Что я делаю не так?