我如何编码 SplashScreenActivity.kt 因为我的不起作用[关闭]

2024-01-31

我想向我的应用程序添加启动屏幕,因此我创建了一个名为 SplashScreen 的活动 我将此代码添加到 SplashScreenActivity.kt 但 android studio 无法识别 java
val i = Intent(this@MainActivity, MainActivity::class.java) 它显示为红色 请注意,我使用 kotlin

package com.example.textnav

import android.content.Intent
import android.os.Bundle
import android.os.Handler
import androidx.appcompat.app.AppCompatActivity


class SplashScreen : AppCompatActivity() {
    private val SPLASH_TIME_OUT = 3000L

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_splash_screen)


                Handler().postDelayed(
                    {
                        val i = Intent(this@MainActivity, MainActivity::class.java)
                        
                        startActivity(i)
                        finish()
                    }, SPLASH_TIME_OUT
                )
            }
        }

the pic https://ibb.co/bmjVHNV

主要活动.kt

package com.example.textnav

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

Handler().postDelayed(
    {
        val i = Intent(this,MainActivity::class.java)
        startActivity(i)
        finish()
    }, 
    SPLASH_TIME_OUT
)

this指的是{ }你在里面的 lambda(这是一个Runnable).

Try:

val i = Intent(this@SplashScreen, MainActivity::class.java)

得到this来自外部范围(您的活动)。

您调用的 Intent 构造函数需要一个Context作为它的第一个参数。 你的this属于类型Runnable. With this@SplashScreen你正在使用的类型Activity(这是一个Context).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何编码 SplashScreenActivity.kt 因为我的不起作用[关闭] 的相关文章

随机推荐