kotlin的Onclick很简洁这里就不说了,这里主要分享下fun传递参数时包含回调的小技巧。
场景:假如我想通过Dialog管理类来统一管理项目里的Dialog,Activity页面显示时又需要Dialog页面回调参数。
代码如下:
fun bindDialog(activity: Activity?, onClickLogin: (mobile: String, code: String) -> Unit): Dialog {
val dialogView = View.inflate(activity, R.layout.dialog_xx, null)
val dialog = Dialog(activity, R.style.PayDialog)
//省略代码
...
onClickLogin("130222222222","123")
dialog.setContentView(dialogView)
val dialogWindow = dialog.window
val lp = dialogWindow!!.attributes
lp.width = DisplayUtil.dip2px(activity, 300f)
dialogWindow.setGravity(Gravity.CENTER)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
dialog.create()
}
dialog.show()
return dialog
}
// 使用
DialogUtil.bindDialog(this,
{ mobile, code ->
// 回调处理
...
})
是不是很爽!