Настройка прослушивателей Android в Kotlin – использование возврата в lambdas

Рассмотрим этот код слушателя:

expandable_list.setOnChildClickListener { expandableListView, view, groupPosition, childPosition, l -> Toast.makeText( applicationContext, listDataHeader[groupPosition] + " : " + listDataChild[listDataHeader[groupPosition]]!![childPosition], Toast.LENGTH_SHORT).show() return false} 

Это не сработает, и я получаю форму «return is not allowed here» error IDE. Я немного искал, и получается, что явные возвращения не работают в lambdas, но подпись метода, который я пытаюсь использовать:

public final fun setOnChildClickListener(onChildClickListener:((ExpandableListView!, View!, Int, Int, Long) -> Boolean)! : Unit

Мое обходное решение состоит в том, чтобы определить мою логику слушателя в отдельной функции, которая возвращает Boolean следующим образом:

  private fun myBooleanReturningFun(): Boolean { Toast.makeText( applicationContext, "I work from here", Toast.LENGTH_SHORT).show() return false } 

а затем вызовите его внутри моего слушателя:

 expandable_list.setOnChildClickListener { expandableListView, view, groupPosition, childPosition, l -> myBooleanReturningFun() } 

Но является ли это правильным или самым способным способом Котлина? Как мне нужно изменить код слушателя на работу, не определяя отдельную функцию, которая возвращает логическое значение ?

Просто делайте это так, без возврата

 expandable_list.setOnChildClickListener { expandableListView, view, groupPosition, childPosition, l -> Toast.makeText( applicationContext, listDataHeader[groupPosition] + " : " + listDataChild[listDataHeader[groupPosition]]!![childPosition], Toast.LENGTH_SHORT).show() false}