Java 5秒后更改布局
我的应用程序首先显示一个只包含我的应用程序图标的布局,5秒钟后它应该切换到另一个我定义为另一个XML布局文件的布局,但当我在手机上测试它时,第一个布局显示,5秒钟后应用程序退出。下面是我的代码Java 5秒后更改布局,java,android,Java,Android,我的应用程序首先显示一个只包含我的应用程序图标的布局,5秒钟后它应该切换到另一个我定义为另一个XML布局文件的布局,但当我在手机上测试它时,第一个布局显示,5秒钟后应用程序退出。下面是我的代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Ti
@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_是包含注册表单的布局xml文件
我在youtube上也看到过同样的事情,但那个家伙在点击按钮后改变了布局,结果成功了。。。。我只把“点击”按钮改为“定时器”
谦恭地要求回答。谢谢您可以使用布局活动\u 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);
}
@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);
}
它可以工作。您也可以使用如下处理程序:
@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);
}
@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);
}
您需要在UI线程中运行
setContentView
。您可以将其包装在runOnUiThread
中。有关更多信息,请参阅。您可以从布局中的任何现有视图使用handler感谢您的回答…它起了作用,能够学习handler、looper和Threads感谢您的回答。什么是tvHellow?它只是活动_main中id为=“@id/tvHellow”的文本视图。您可以使用activity_main中的任何视图,因为任何视图在引擎盖下都已经有了自己的处理程序