lambda expression on interface in Kotlin

前端 未结 2 1871
一向
一向 2020-12-19 08:15

I\'m converting a project in Java to Kotlin and I\'m surprise that interface made the code heavier in Kotlin than in Java.

Example: I want to set t

2条回答
  •  一向
    一向 (楼主)
    2020-12-19 09:05

    You use Java style while use Kotlin =)

    If you really want to use OnBackPressedListener you can just wrap it in inline function, like:

    inline fun backPress(crossinline action:()->Unit):OnBackPressedListener {
        return object: OnBackPressedListener {
            override fun onBackPressed() {
                action()
            }
        }
    }
    

    And then just set listener

    activity.setOnBackPressed(backPress {  
    /* Do something */
    })
    

提交回复
热议问题