如何从Kotlin的非活动课开始一项新活动?

时间:2018-03-20 07:04:07

标签: android kotlin

我正在研究一种使用相机镜头从手指读取心率的应用程序。我希望在预览图像后将结果传递给新的Activity。 我想打开下一个Activity Results.kt

这是我到目前为止所尝试的内容:

if (Beats != 0) {
    var intent = Intent(this, Results::class.java)
    ContextCompat.startActivity(intent)
}

2 个答案:

答案 0 :(得分:1)

只要您有适当的Context,就可以按照以下步骤开始Results

if (Beats != 0) {
    var intent = Intent(context, Results::class.java)
    context.startActivity(intent)
}

如果您的非活动类现在无法访问Context,则应将其注入某处(例如,在创建对象期间作为传入参数)。

答案 1 :(得分:0)

您不能使用this,因为它不是Activity,因此不是Context。您必须提供正确的Context,并且还可以通过标记说新任务:

 if (Beats != 0) {
      var intent = Intent(MyClass.this.context, Results::class.java)
      MyClass.this.context.startActivity(intent)
  }

此处将MyClass替换为您的班级名称。不确定它是否会起作用。