不确定如何表达此问题。我想创建一个函数,当调用该函数时,可以在继续下一个函数之前向其添加addOnSuccessListener
。
我知道,当我让函数返回Task<Void>
时,我可以在其中添加addOnSuccessListener
,但是在函数本身中,我不确定要返回什么,因为我正在执行的操作是将EditText输入保存为变量的简单过程。不确定要返回什么任务。
这是我的功能:
fun saveInput(): Task<Void> {
email = emailInput.text.toString()
phone = phoneInput.text.toString()
whatsApp = whatsAppInput.text.toString()
return //notSureWhatToReturnHere
}
我希望能够做这样的事情:
saveInput.onSuccess{
//do something
}
答案 0 :(得分:0)
像这样吗?
class Worker<T> {
private var successListener: ((result: T) -> Unit)? = null
fun onSuccess(result: T) {
successListener?.run { this(result) }
}
fun addSuccessListener(listener: (result: T) -> Unit): Worker<T> {
successListener = listener
return this
}
}
class MyRandomClass {
fun doSomething(variable: String): Worker<String> {
val worker: Worker<String> = Worker()
val result = variable.reversed()
worker.onSuccess(result)
return worker
}
}
//... in code
val randomClass = MyRandomClass()
randomClass.doSomething("Hello World")
.addSuccessListener {
Log.d(TAG, "Result is: $it")
}
}