lambda 运行的小知识点
languageLv!!.setOnItemClickListener { _, _, i, _ ->
this.position = i
adapter.notifyDataSetChanged()
}
lambda 我经常在用,也用得很顺手,只不过都是用as提示写出来的
但是我今天第一次见到还可以这样用的
原型是这样子的
languageLv!!.setOnItemClickListener { parent, view, position, id ->
this.position = position
adapter.notifyDataSetChanged()
}
差别就在里面的参数,
上面不需要的参数都是 下划线( _ )
下面的都是默认参数
当时是在使用的时候成员变量名一样,为了避免冲突,然后改成i,同事看到,直接让我把其他变量改成下划线 (_ ),突然觉得好神器
看了一下解释:
因为解构声明语法为lambda表达式传递参数
如果不想声明其他变量,就可以用下划线( _ )替代变量
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch(id){
case 10:
return new AlertDialog.Builder(Activity13.this)
.setTitle(getString(R.string.title)).setMessage(
getString(R.string.timeout)).setPositiveButton(
getString(R.string.ok),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
}
}).create();
}
return super.onCreateDialog(id);
}