我的应用程序中有一个名为LoginActivity
的活动(使用kotlin)。这会将发布请求作为异步任务发送到API。从API获得响应后,我想将活动从onPostExecute
方法更改为MainWindowActivity
。
我无法更改活动:
val intent = Intent(this, MainWindowActivity::class.java)
startActivity(intent)
因为this
仅返回LoginActivity.PostJsonAsync
(PostJsonAsync
是extends
AsyncTask
)
答案 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)