2011-06-06 136 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