如何从Android kotlin中的非活动类开始新的活动? [英] How to start a new activity from a non activity class in Android kotlin?
本文介绍了如何从Android kotlin中的非活动类开始新的活动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在尝试传递上下文,但这只是行不通所以我先用
I've been trying to pass the context but it just doesn't work so I declare it first using
var mContext: Context? = null
然后在我的一个函数(来自非活动类)中调用它
then in one of my function (from non activity class) I call it
val intent= Intent(mContext, NotificationActivity::class.java)
mContext?.startActivity(intent)
它在编码中没有显示错误,但是当我运行此应用程序时,它根本不起作用
It doesn't show error in coding but when I run this app, it just doesn't work
NotificationActivity是我要调用的类
NotificationActivity is the class that I want to call
推荐答案
您要做的就是这样.
,您可以像如果您执行的是onClick或使用适配器,则可以从其视图中获取上下文,例如
if you are performing onClick or using adapter then you can get Context from its View like
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)
}
}
具有构造函数的非活动类.
Non Activity Class with Constructor.!
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)
}
}
这篇关于如何从Android kotlin中的非活动类开始新的活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文