我如何编写 SplashScreenActivity.kt 因为我的代码不起作用
how i code the SplashScreenActivity.kt cuz mine doesn't work
我想在我的应用程序中添加启动画面,所以我创建了一个名为 SplashScreen 的 activity
我将此代码添加到 SplashScreenActivity.kt
但是 android 工作室没有在
中重新调整 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
)
}
}
mainactivity.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
)。
尝试:
val i = Intent(this@SplashScreen, MainActivity::class.java)
从外部范围(您的 activity)获取 this
。
您调用的 Intent 构造函数需要一个 Context
作为它的第一个参数。
您的 this
属于 Runnable
类型。
对于 this@SplashScreen
,您使用的是类型 Activity
(即 Context
)。
我想在我的应用程序中添加启动画面,所以我创建了一个名为 SplashScreen 的 activity
我将此代码添加到 SplashScreenActivity.kt
但是 android 工作室没有在
中重新调整 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
)
}
}
mainactivity.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
)。
尝试:
val i = Intent(this@SplashScreen, MainActivity::class.java)
从外部范围(您的 activity)获取 this
。
您调用的 Intent 构造函数需要一个 Context
作为它的第一个参数。
您的 this
属于 Runnable
类型。
对于 this@SplashScreen
,您使用的是类型 Activity
(即 Context
)。