在 Android 中经常使用如下形式的接口 :
定义一个 OnClickListener 接口 ,
interface OnClickListener {
void onClick()
}
将 OnClickListener 接口对象 作为函数参数 , 传递到函数中 ,
void setOnClickListener (OnClickListener onClickListener) {
onClickListener.onClick()
}
然后调用上述函数 , 传递一个 OnClickListener 的匿名内部类 ,
setOnClickListener(new OnClickListener() {
@Override
void onClick() {
println "OnClick"
}
})
执行结果为 :
OnClick
如果 setOnClickListener 函数参数接收的是
个接口 , 接口中只有
个方法 , 那么可以直接向 setOnClickListener 方法中传递一个闭包 , 该闭包相当于 OnClickListener 接口中的 onClick 方法 ;
interface OnClickListener {
void onClick()
}
void setOnClickListener (OnClickListener onClickListener) {
onClickListener.onClick()
}
setOnClickListener{
println "OnClick2"
}
执行结果 :
OnClick2
完整代码示例 :
interface OnClickListener {
void onClick()
}
void setOnClickListener (OnClickListener onClickListener) {
onClickListener.onClick()
}
// 正常参数调用
setOnClickListener(new OnClickListener() {
@Override
void onClick() {
println "OnClick"
}
})
// 传递一个闭包到 setOnClickListener 方法中
setOnClickListener{
println "OnClick2"
}
执行结果 :
OnClick
OnClick2
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有