我想向我的应用程序添加启动屏幕,因此我创建了一个名为 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(使用前将#替换为@)