В настоящее время я разрабатываю приложение для Android, которое использует библиотеку Retrofit для использования API REST.
Например, у меня есть следующий код из MainActivity.kt:
fun userLogin(){
calls.userLogin() { updateUiComponents() }
}
fun updateUiComponents(){
Toast.makeText(applicationContext, "LAMBDA EXECUTED",Toast.LENGTH_SHORT).show()
}
И яВ отдельном файле есть определение вызовов Retrofit:
fun userLogin(postActionMethod: () -> Unit){
val call = service.userLogin()
call.enqueue(object : Callback<LoginResponse>{
override fun onFailure(call: Call<LoginResponse>?, t: Throwable?) {
Log.i("ERROR RUNNING CALL", t?.message.toString())
}
override fun onResponse(call: Call<LoginResponse>?, response: Response<LoginResponse>?) {
postActionMethod()
}
})
}
После того, как вызов Retrofit реализован и он успешен, достигнув метода onResponse, я хотел бы отправить объект Response в качестве параметралямбда-функция обратно в MainAcativity.kt.Из MainActivity.kt лямбда-функция будет использовать эту информацию для выполнения какой-то конкретной задачи.
Это способ определения лямбда-функции, подобной этой, с аргументами?Если это так, как я могу передать лямбда-функцию в качестве параметра, как это сделано в следующей строке:
calls.userLogin(body) { updateUiComponents() }
Спасибо!