2011-06-06 128 views
0

我不知道为什么我的应用程序不喜欢以下内容,并且会很感激任何帮助。两个画布之间的Android切换

我有设置以下的onCreate

setContentView(new Splash(this)); 

飞溅是与在它的构造函数如下所示的surfaceview

this.setBackgroundDrawable(getResources().getDrawable(R.drawable.splash)); 

然后,我有一个线程在飞溅的是等待3秒或3000主要活动毫秒。

然后调用在主要活动

setContentView(new GameCanvas(this)); 

一切正常,第二surfaceview直到它调用seoncds的setContentView,屏幕并没有改变,它坚持在启动屏幕上。

有什么想法为什么?

这里是我的线程

new Thread(){ 
      public void run(){ 
       try{ 
        Log.e("here", "sleeping"); 
        sleep(3000); 
        //main being the main activity class 
        main.killSplash(); 
        //Log.e("here", "KILL SPLASH"); 
       }catch(Exception e){ 
        // 
       } 
      } 
     }.start(); 

PS我有一种感觉那是因为我是从一个线程

回答

1

活动被设计成不同的“屏幕”里面调用开关画布的方法应用程序,因此您应该将主屏幕的活动与主游戏活动分开。一旦一个活动已经完成,我不相信改变contentView会触发重绘。我相信你只能从onCreate方法调用setContentView一次。

另请注意,每个活动都会自动在新线程中运行。

顺便说一句,你可能想要遵循一些Android Developer tutorials。 setContentView主要用于建立活动的布局和内容,通常在XML资源中定义,而您似乎将其视为切换视图实例的手段。

+0

是的,它适用于我试过的一切...只是由于某种原因,它不喜欢这个时间:D – Stevanicus 2011-06-06 16:22:24

+0

我最后去了活动,你是最好的工作。 thnx – Stevanicus 2011-06-06 16:30:47

+1

太棒了!请标记答案是正确的。 :-) – 2011-06-06 16:32:25