Что эта переменная означает внутри лямбда-аргумента? - PullRequest
2 голосов
/ 18 мая 2019

незнакомая переменная в коде

Искал лямбда-эксплантацию

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()
    }

1.Что означает h и m в этой переменной?

2.Что делает function =?

3.Почему view не используется?

Ответы [ 2 ]

2 голосов
/ 18 мая 2019

Это значения hourOfDay и minute, как видно из документации для OnTimeSetListener и метода onTimeSet() .

Ваше лямбда-выражение образует тело onTimeSet(), а три параметра лямбда - это три параметра для onTimeSet().

ОБНОВЛЕНИЕ : относительно двух дополнительных вопросов, которые вы добавили позже:

  • function = там не нужен.Я предполагаю, что для преобразований Kotlin SAM function - это имя, данное лямбда-выражению, которое будет преобразовано в функцию интерфейса.

  • Почему view не используется, онине нужно было показывать Toast.

0 голосов
/ 18 мая 2019

Как указано в [официальной документации] (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...