Итак, я получил эту функцию в Котлине:
private fun initComponents(){
lv = findViewById(R.id.listView)
lv?.setOnItemLongClickListener { _, _, i, _ ->
removeItem(i) <- Error Here
}
}
fun removeItem(index : Int){
items.removeAt(index)
}
где элементы - это ArrayList.
И мне выдает ошибку в лямбде -
Type mismatch. Required: Boolean Found: Unit
Я новичок в Котлине. Спасибо за любую помощь
Вам нужно вернуть значение Boolean, чтобы указать, использовали ли вы событие или нет:
lv?.setOnItemLongClickListener { _, _, i, _ ->
removeItem(i)
true
}
@NadavHoltzman: setOnClickListener() принимает OnClickListener. Его метод onClick() возвращает void, который сопоставляется с Unit в Котлине. setOnLongClickListener() берет OnLongClickListener. Его метод onLongClick() возвращает boolean.
круто, это работает, но почему -setOnItemClickListener этого не требует?