android - Kotlin 内部类访问外部类?

标签 android kotlin

如何从内部类调用外部类的方法? 我可以将它作为上下文传递,但我不能对其调用方法

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

最佳答案

我不确定您在这里使用的是什么 API,为了答案。

您直接在对象 的主体中而不是在函数中编写代码。创建 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)
                        }
                    }
            )
}

关于android - Kotlin 内部类访问外部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50950035/

相关文章:

android - 不要在 AutoCompleteTextView 中打开下拉菜单

java - 我无法提供 ViewModel

java - 为什么我不能在 Kotlin 中访问父类(super class)的枚举?

android - 尝试显示 popupWindow 时出现 IllegalStateException

Android Jetpack 导航 Controller |获取当前目的地的操作列表

android - 使用 Android AccountManager 的 Firebase 身份验证

java - 我正在集成一个 android API,在以下情况下一直无法生成 xwsse token

java - 有意以 int 形式发送到另一个 Activity 的 ID 始终为零

kotlin - 如何访问顶级对象的字段?

android - Kotlin异步任务/Firebase查询,等待结果的最佳方法?