我們日常寫Android監(jiān)聽器回調經常使用到的方式:
-----java版本------
interface OnClickListener{
public void onClick(View view);
}
private OnClickListener listener;
public void setClickListener(OnClickListener listener){
this.listener = listener;
}
-----kotlin版本-----
interface OnClickListener{
fun onClick(view:View);
}
private lateinit var listener:OnClickListener;
fun setClickListener(listener:OnClickListener){
this.listener = listener;
}
使用Lambda 表達式可實現SAM轉換
所以使用setClickListener{
// to do something
}
-------SAM轉換--------
private lateinit var onClick:(View)->Unit
fun setClickListener(onClick:(View)->Unit){
this.onClick = onClick
}
使用時:
setClickListener{
(view:View)->{
// to do something
}
}