我一直试图通过上下文,但它不起作用 所以我先用
声明它var mContext: Context? = null
然后在我的一个函数中(来自非活动类)我称之为
val intent= Intent(mContext, NotificationActivity::class.java)
mContext?.startActivity(intent)
它没有显示编码错误,但是当我运行此应用时,它只是不起作用
NotificationActivity是我想要调用的类
答案 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)
}
}