5秒后更改布局

时间:2019-03-13 08:39:37

标签: java android

我的应用程序首先显示仅包含我的应用程序图标的布局,并在5秒钟后切换到我定义为另一个XML布局文件的另一个布局,但是当我在手机上对其进行测试时,第一个布局将显示,并且在5该应用程序退出的秒数。下面是我的代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Timer timer;
    timer=new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            setContentView(R.layout.signup);}  },5000);}}

我已经使用了计时器功能。 activity_main是仅包含图像视图的布局xml文件,sign_up是包含注册表单的布局xml文件。

我在youtube上也见过同样的情况,但是那家伙在单击按钮后更改了布局,它起作用了...。我只是将单击按钮更改为计时器。

谦虚地要求答案。谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用布局activity_main中的任何视图来调用postDelayed,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViewById(R.id.tvHellow).postDelayed(new Runnable() {
        @Override
        public void run() {
            setContentView(R.layout.sign_up);
        }
    }, 5000);
}

它有效。

答案 1 :(得分:0)

您还可以使用以下处理程序:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Handler handler = new Handler(Looper.getMainLooper());
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
           setContentView(R.layout.signup);
        }
    }, 5000);
}

答案 2 :(得分:0)

您正在尝试使用类似启动画面。我的方法是在同一活动中使用两个活动而不是不同的布局。我建议使用这种方法,因为我通常会在Splash Activity中添加差异逻辑(例如控制用户偏好设置等)。我会这样更灵活。