Android Studio中带计时器的SplashScreen启动页代码报错求助
解决你的SplashScreen计时器问题
嘿,刚接触Android Studio踩点坑太正常啦!我看了你的代码和错误提示,能发现几个明显的语法和逻辑问题,咱们一步步来修好它:
核心错误点梳理
- Intent构造参数搞反了:Intent的第一个参数是当前页面的上下文(
SplashScreen.this),第二个才是要跳转的目标Activity的class(MainActivity.class),你刚好写反啦! - postDelayed方法参数缺失逗号:
new Handler().postDelayed()的第二个参数是延迟时间,你在闭包}和SPLASH_TIME_OUT之间漏了逗号,直接导致语法报错。 - 多余的闭合大括号:代码末尾多了一个
},这也会让编译逻辑混乱。
修正后的完整代码
package com.example.shromid; import android.content.Intent; import android.os.Handler; import androidx.appcompat.app.AppCompatActivity; // 建议换成AndroidX依赖,官方现在更推荐这个 import android.os.Bundle; public class SplashScreen extends AppCompatActivity { private static int SPLASH_TIME_OUT = 4000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash_screen); new Handler().postDelayed(new Runnable() { @Override public void run() { // 修正Intent的参数顺序 Intent homeIntent = new Intent(SplashScreen.this, MainActivity.class); startActivity(homeIntent); finish(); } }, SPLASH_TIME_OUT); // 补上缺失的逗号 } }
额外小建议
如果你的项目是比较新的创建的,建议把android.support.v7.app.AppCompatActivity换成androidx.appcompat.app.AppCompatActivity——因为Android Support库已经停止维护,AndroidX是官方现在主推的版本,能避免很多后续兼容性问题。
内容的提问来源于stack exchange,提问作者Marko Horvat
相关产品推荐
相关产品推荐

