这个变量在lambda参数中意味着什么?

时间:2019-05-18 15:29:42

标签: android kotlin

代码中不熟悉的变量

搜索lambda剥离

REN D:\Folder\*.jpg prefix_??.*

1。该变量中的h和m是什么意思?

2。fun clickTimePicker(view: View) { val c = Calendar.getInstance() val hour = c.get(Calendar.HOUR) val minute = c.get(Calendar.MINUTE) val tpd = TimePickerDialog(this,TimePickerDialog.OnTimeSetListener(function = { view, h, m -> Toast.makeText(this, h.toString() + " : " + m +" : " , Toast.LENGTH_LONG).show() }),hour,minute,false) tpd.show() } 做什么?

3。为什么不使用function =

2 个答案:

答案 0 :(得分:2)

这些是the documentation for OnTimeSetListener and its onTimeSet() method中的hourOfDayminute值。

您的lambda表达式构成onTimeSet()的主体,而三个lambda参数是onTimeSet()的三个参数。

更新:关于您稍后添加的另外两个问题:

    在那里不需要
  • function =。我的猜测是,对于Kotlin SAM转换,function是为lambda指定的名称,该lambda将被转换为接口的函数。

  • 关于未使用view的原因,他们不需要它来显示Toast

答案 1 :(得分:0)

如[官方文档](https://developer.android.com/reference/android/app/TimePickerDialog.OnTimeSetListener)中所述,它表示一天中的小时和分钟。

view- TimePicker: the view associated with this listener
h   - int: the hour that was set
m   - int: the minute that was set