zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Kotlin BaseNodeProvider()如何转跳到Activity

Kotlin 如何 Activity
2023-09-14 09:14:00 时间

Kotlin BaseNodeProvider()如何转跳到Activity
我写的代码如下:

class StatisticsNodeProvider() : BaseNodeProvider() {
......
            val intent = Intent(xxx, StatisticsActivity::class.java)
            startActivity(intent)
......
}

在这里插入图片描述
我想把当前“xxx”转跳到一个Activity,xxx怎么写
我在百度找到了一个小问题:
说是必须要先获取Application中的Context,Context是上下文的

解决:

改代码如下:

class MyApplication : Application() {
    companion object {
        lateinit var instance: MyApplication
        lateinit var context: Context
    }
    override fun onCreate() {
        super.onCreate()
        instance = this
        context = applicationContext
    }
}

现在我来理解一下上面这块代码
Application类继承到MyApplication
然后在companion object中定义一个context变量,重写父类的onCreat()方法,然后调用applicationContext方法给context赋值,所以必须要先获取的Application中的Context

在AndroidManifest.xml中修改默认的Application为我们的MyApplication类,这样系统初始化时就会初始化MyApplication而不是Application

    <application
        android:name="com.demo.test.MyApplication"//添加这一句
        android:allowBackup="true"
        ...

改代码如下,BaseNodeProvider()可以转跳到Activity

            val intent = Intent(MyApplication.context, StatisticsActivity::class.java)
            context?.startActivity(intent)//context?的意思是context != null

第二种方法点击↓↓↓
Kotlin 特殊的registerActivityLifecycleCallbacks+一个非Activity转跳到另一个Activity