我一直在尝试为 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/