如何从内部类中调用外部类中的方法? 我可以将其作为上下文传递,但不能在其上调用方法
loginButton.setOnClickListener {
ssoManager.login(emailEditText.text.toString(), passwordEditText.text.toString())
.subscribe(object: Consumer<SSOToken> {
val intent = Intent(this@LoginActiviy, PasscodeActivity::class.java)
this@LoginActiviy.startActivity(intent)
})
答案 0 :(得分:3)
我不确定您在此处使用的是什么API,为了得出答案,我将假设您的Consumer
是java.util.function.Consumer
。
您正在直接在object
的主体中而不是在函数内部编写代码。创建Intent
的第一行仅适用于您声明的是属性(而不是局部变量!)。
您应该做的是实现Consumer
的适当方法,并在其中编写要执行的代码:
loginButton.setOnClickListener {
ssoManager.login()
.subscribe(
object : Consumer<SSOToken> {
val foo = "bar" // this is a property of the object
override fun accept(t: SSOToken) {
val intent = Intent(this@LoginActiviy, PasscodeActivity::class.java)
this@LoginActiviy.startActivity(intent)
}
}
)
}