我們?nèi)粘?xiě)Android監(jiān)聽(tīng)器回調(diào)經(jīng)常使用到的方式:
-----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 表達(dá)式可實(shí)現(xiàn)SAM轉(zhuǎn)換
所以使用setClickListener{
// to do something
}
-------SAM轉(zhuǎn)換--------
private lateinit var onClick:(View)->Unit
fun setClickListener(onClick:(View)->Unit){
this.onClick = onClick
}
使用時(shí):
setClickListener{
(view:View)->{
// to do something
}
}