简体   繁体   English

在Kotlin中,带有匿名类的构造函数如何工作?

[英]In Kotlin, how does a constructor with anonymous class work?

Consider a functionality F, which depends on Android lifecycle methods. 考虑功能F,它取决于Android生命周期方法。 I have implemented this functionality in an Activity A. Any other activity which wants to implement this functionality can simply extend A. The results are sent back to the child activity via an interface. 我已经在活动A中实现了此功能。想要实现此功能的任何其他活动都可以简单地扩展A。结果通过接口发送回子活动。 Example: 例:

// interface
interface ACallbacks {
     fun onResult(string: String)
}

// Activity A
open class AActivity
(private val aCallbacks: ACallbacks): AppCompatActivity() {
     // functionality F, which depends on Android lifecycle methods
}

// Activity B
class BActivity: AActivity(object: ACallbacks {
    override fun onResult(string: String) {
         // Q: how to use string in BActivity?
    }
}) {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_b)
    }
}

How to access the result from Activity A (ie, string ) in Activity B. For example, how do I set it in a textView present in Activity B? 如何从活动B中的活动A(即string )访问结果。例如,如何在活动B中的textView中设置结果?

If BActivity inherits from AActivity - inside BActivity you can get what you want: 如果BActivity继承自AActivityBActivity您可以获得所需的内容:

override fun someFun(): String {
    val parentResult = super.someFun()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM