好的,我一打开应用程序就执行两个异步任务。目前有一个进度对话框,但您仍然可以在后台看到布局。
因此,显而易见的答案是在进度对话框关闭之前不要setContentView(R.layout.activity_main);
。但我不能这样做,因为我的第一个异步任务在执行后将视频分配到 View 中,如果之前未设置布局,则会引发空指针异常。
protected void onPostExecute(Void result) {
//video is a string file created by doinbackground
card = (VideoView) findViewById(R.id.video);
card.setVideoPath(video);
//Video Loop
card.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
}
});
card.start();
}
最佳答案
在代码内的布局内并使用 setVisibity() 例如,您必须隐藏 id myLayout 的线性布局 1)在布局xml中设置id
android:id="@+id/mylayout"
2)现在在代码中的 OnCreate 方法下
LinearLayout linearLayout = (LinearLayout) findViewbyId(R.id.mylayout);
linearLayout.setVisibility(View.INVISIBLE)
3)用户postExecute方法
linearLayout.setVisibility(View.VISIBLE)
关于java - 如何隐藏应用程序布局直到执行后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38426622/