如何使用Kotlin从onPostExecute()方法更改活动

时间:2018-08-22 08:39:42

标签: android kotlin

我的应用程序中有一个名为LoginActivity活动(使用kotlin)。这会将发布请求作为异步任务发送到API。从API获得响应后,我想将活动onPostExecute方法更改为MainWindowActivity。 我无法更改活动:

 val intent = Intent(this, MainWindowActivity::class.java)
 startActivity(intent)

因为this仅返回LoginActivity.PostJsonAsync

PostJsonAsyncextends AsyncTask

2 个答案:

答案 0 :(得分:2)

要从Kotlin的内部类(PostJsonAsync)引用外部类实例(LoginActivity),必须在类之前添加inner关键字,使您的类成为内部类(它们可以访问外部类实例)。

inner class PostJsonAsync : AsyncTask<Void, Void, Void>() {

    override fun onPostExecute(result: Void?) {
        super.onPostExecute(result)
        val intent = Intent(this@LoginActivity, LoginActivity::class.java)
        startActivity(intent)
    }
}

答案 1 :(得分:0)

简单:

val intent = Intent(name_of_your_activity:class.this, MainWindowActivity::class.java)
startActivity(intent)