如何从Android kotlin中的非活动类开始新活动?

时间:2018-04-10 04:46:35

标签: java android notifications kotlin

我一直试图通过上下文,但它不起作用 所以我先用

声明它
var mContext: Context? = null

然后在我的一个函数中(来自非活动类)我称之为

val intent= Intent(mContext, NotificationActivity::class.java)
mContext?.startActivity(intent)

它没有显示编码错误,但是当我运行此应用时,它只是不起作用

NotificationActivity是我想要调用的类

1 个答案:

答案 0 :(得分:2)

你所要做的就是这样。

您可以像Non Activity Example Using Kotlin

一样使用它
 Utils.startNewActivity(this,SecondActivity::class.java)


 Utils.startNewActivity(this@MainActivity,SecondActivity::class.java)

如果您正在执行onClick或使用适配器,那么您可以从其视图中获取上下文

 Utils.startNewActivity(view.context,SecondActivity::class.java)









    class Utils {

        companion object {
            fun startActivity(context: Context, clazz: Class<*>) {

                val intent = Intent(context, clazz)

               // start your next activity

                context.startActivity(intent)

            }
        }

}

object Utils {

     fun startNewActivity(context: Context, clazz: Class<*>) {

            val intent = Intent(context, clazz)
// To pass any data to next activity
//            intent.putExtra("keyIdentifier", value)
// start your next activity
            context.startActivity(intent)

        }


}

带构造函数的非活动类。

 UtilsWithConstructor(this@MainActivity).startNewActivity(SecondActivity::class.java)

class UtilsWithConstructor(private val context: Context) {

      fun startNewActivity(clazz: Class<*>) {

    val intent = Intent(context, clazz)
    // start your next activity
    context?.startActivity(intent)

}


}