java - 错误: incompatible types: Message cannot be converted to int?

标签 java android android-studio

我一直在尝试为 Android 应用制作启动画面,并且我使用过 this教程。一切都应该没问题,除了 Android Studio 给我一条错误消息说

Message can't be converted to int.

我正在为 msg.what 分配一个 int 值,但这应该有效,所以我不太确定为什么它会给我这个错误。

我的代码如下:

    private static final long SplashTime = 3000;
    private static final int StopSplash = 0;

    private ImageView splash;

    @SuppressLint("HandlerLeak")
    private Handler splashHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == StopSplash) {
                splash.setVisibility(View.GONE);
                //break;
            }
            super.handleMessage(msg);
        }
    };

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.splashsheet);
        splash = (ImageView) findViewById(R.id.splashscreen);
        Message msg = Message.obtain();
        msg.what = StopSplash;

        splashHandler.sendEmptyMessageDelayed(msg, SplashTime);
    }
}

最佳答案

对于sendEmptyMessageDelayed,您应该仅传递what代码作为第一个参数:

splashHandler.sendEmptyMessageDelayed(StopSplash, SplashTime);

另一方面,您可以使用sendMessageDelayed:

splashHandler.sendMessageDelayed(msg, SplashTime);

关于java - 错误: incompatible types: Message cannot be converted to int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59050084/

相关文章:

android - 在 gradle 命令中添加变量

java - 安卓.view.InflateException : Binary XML file line #13: Error inflating class ViewPager

java - JTable.setDefaultEditor() 不起作用,但设置为特定字段有效。

java - Java SE 上的 SOAP 消息

安卓启动套件

android - 开始时调试apk的Gradle任务

android - 更新到 4.0 后无法在 Android Studio 中创建 Activity 或 Fragment

android - 如何在 Android N 中允许多窗口功能 Activity 明智?

java - 在Java中导入多个类文件

javascript - 在javascript中将SVG(包含动画)保存为不带 Canvas 的PNG文件