1 2 3 4

java&kotlin listener

private MyListener myListener;
public void setMyListener(MyListener myListener) {
    this.myListener = myListener;
}
public interface MyListener {
    void myFun(long timeInMillis);
}
fragment.setMyListener{
            mModel.myAnotherFun(it)
        }
        


private var myListener: MyListener? = null
fun setMyListener(myListener: MyListener) {
    this.myListener = myListener
}
fun interface MyListener {
    fun myFun(timeInMillis: Long)
}
fragment.setMyListener{
    mModel.myAnotherFun(it)
}



private var myListener: MyListener? = null
fun setMyListener(myListener: MyListener) {
    this.myListener = myListener
}
interface MyListener {
    fun myFun(timeInMillis: Long)
}
fragment.setMyListener( object: MyListener {
    override fun myFun(timeInMillis: Long) {       // 必须实现接口
        mModel.myAnotherFun(timeInMillis) 
    }
}
                       
                       
// 使用函数类型替代接口
private var myListener: ((Long) -> Unit)? = null
// 使用函数类型参数
fun setMyListener(listener: (Long) -> Unit) {
    this.myListener = listener
}
// 使用(可以直接使用Lambda):
fragment.setMyListener { time ->
    mModel.myAnotherFun(time)
}
// 或使用it简写:
fragment.setMyListener {
    mModel.myAnotherFun(it)
}
posted @ 2026-03-18 09:42  y丶innocence  阅读(6)  评论(0)    收藏  举报