这些语法在Android studio建议中是什么意思?
这是什么意思。 第二个我知道,它期待一个View.OnclickListner。l:什么意思这些语法在Android studio建议中是什么意思?,android,Android,这是什么意思。 第二个我知道,它期待一个View.OnclickListner。l:什么意思 还有l:((视图!)->Unit)呢?这意味着是一个不返回类型的lamda表达式,因此是Unit。您可以将代码放入其中,当用户单击时,这些代码将起作用。例如,您可以编写一个可重用的警报对话框,该对话框作为参数获取一个不返回任何内容的完整函数,您可以重用它。像这样: fun showDialog(context: Context, message:String, retry:() ->Unit){
还有l:((视图!)->Unit)呢?这意味着是一个不返回类型的lamda表达式,因此是Unit。您可以将代码放入其中,当用户单击时,这些代码将起作用。例如,您可以编写一个可重用的警报对话框,该对话框作为参数获取一个不返回任何内容的完整函数,您可以重用它。像这样:
fun showDialog(context: Context, message:String, retry:() ->Unit){
val builder = AlertDialog.Builder(context)
builder.setTitle("Error")
builder.setMessage(message)
builder.setPositiveButton("OK"){_,_ ->
builder.create().dismiss()
}
builder.setNeutralButton("Retry"){_,_ ->
retry()
builder.create().dismiss()
}
builder.create().show()
}
在你的行为中,你可以这样称呼它:
fun displayView(){
//some code
}
showDialog(context, "Error displaying view", displayView())
这样,当alertDialog显示且用户单击retry时,displayView()函数将是call或作为参数传递的任何其他函数。这意味着是一个不返回类型的lamda表达式,因此是单位。您可以将代码放入其中,当用户单击时,这些代码将起作用。例如,您可以编写一个可重用的警报对话框,该对话框作为参数获取一个不返回任何内容的完整函数,您可以重用它。像这样:
fun showDialog(context: Context, message:String, retry:() ->Unit){
val builder = AlertDialog.Builder(context)
builder.setTitle("Error")
builder.setMessage(message)
builder.setPositiveButton("OK"){_,_ ->
builder.create().dismiss()
}
builder.setNeutralButton("Retry"){_,_ ->
retry()
builder.create().dismiss()
}
builder.create().show()
}
在你的行为中,你可以这样称呼它:
fun displayView(){
//some code
}
showDialog(context, "Error displaying view", displayView())
这样,当alertDialog显示且用户单击retry时,displayView()函数将是call或作为参数传递的任何其他函数。使用kotlin时,这意味着建议您使用。如果我们创建一个匿名类,比如OnClickListener。常见的方法是:
view.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
toast("Hello World")
}
})
推荐的方法(lambdas)是:
您可以看到第二种方法更简洁。使用kotlin时,这意味着建议您使用。如果我们创建一个匿名类,比如OnClickListener。常见的方法是:
view.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
toast("Hello World")
}
})
推荐的方法(lambdas)是:
您可以看到第二种方法更简洁。每当一个方法调用包含单个抽象方法(或SAM)的接口实现时,Java/Kotlin都可以用lambda替换该实现。这适用于OP或
setOnClickListener
中的方法。每当一个方法调用包含单个抽象方法(或SAM)的接口实现时,Java/Kotlin都可以用lambda替换该实现。这适用于OP或setOnClickListener
中的方法