2010-02-25 77 views
2

我有一個正面的屏幕,這將打開第二個屏幕的按鈕。第二個屏幕可能需要幾秒鐘才能加載,因此我想在加載時顯示對話框。我的問題是加載第二個屏幕時對話框不顯示,但是當我從第二個頁面返回到第一個頁面時顯示。如果我註釋掉startActivity打開第二頁,對話框顯示正常。我對android編程相當陌生 - 我想這與線程有關。顯示對話框,同時加載新的屏幕

//code snippet from inside onCreate: 
NewGame.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View arg0) { 
//does not get displayed before 2nd page opens 
      showDialog(DIALOG2_KEY); 
//shows fine if next 2 lines commented out 
      Intent i = new Intent(screen1.this, SudukuXL.class); 
      startActivity(i); 

我打過交道的對話框顯示在返回使用onPause()前屏幕。我試過用線程從startActivity中分離對話框,但我沒有運氣。任何幫助,將不勝感激。

我使用的代碼從Android的例子來創建對話框。我下面包括供參考:

protected Dialog onCreateDialog(int id) { 
    switch (id) { 

     case DIALOG2_KEY: { 
      ProgressDialog dialog = new ProgressDialog(this); 
      dialog.setMessage("Loading..."); 
      dialog.setIndeterminate(true); 
      dialog.setCancelable(true); 
      return dialog; 
     } 
    } 
    return null; 
} 

回答

0

恕我直言,我寧願喜歡使用ViewSwitcher,而不是對話。 但無論如何,我認爲你應該在「第二屏幕」中顯示對話框(或切換視圖)。只需讓你的「第二」活動開始,然後在onCreate()中顯示對話框,同時處理一些東西,並在完成刪除對話框(或切換視圖)後完成。 我的建議是使用AsyncTasklike this做一些背景! 也this topic可以幫助你

+0

我測試了延遲發生的地方。它實際上構建了XML - 表中有81個editTexts。在我的PC上的模擬器 - 使用一個空白的Java類,但相同的XML需要2秒鐘顯示。加上完整的java類需要大約3秒。構建XML時,是否可以在第二個屏幕上顯示對話框或ViewSitcher? - 我會去的。 – darkdusky 2010-02-26 12:02:08

+0

所以問題出現在模擬器呈現視圖的時候了嗎?我對嗎?我不知道你在試圖開發什麼,但我寧願使用適配器這樣的東西來獲得包含很多元素的巨大視圖。 Adapters和AdapterView的優點是您可以渲染視圖和數據的可見部分。檢查文檔。 http://developer.android.com/reference/android/widget/Adapter.html – ponkin 2010-02-26 13:18:36

+0

感謝您的建議 - 我正在做一個suduku遊戲,所以81個人edittexts。我是否應該放棄嘗試在不同線程中拆分setContentView和showDialog(請參見下文)? – darkdusky 2010-02-26 15:45:26

0

我試圖顯示一個對話框,直到xml填充,但沒有得到它很正確。這裏有一種方法我試過:

public void onCreate(Bundle icicle) 
      { 
      super.onCreate(icicle); 
      showDialog(DIALOG2_KEY); 

      new Thread(new Runnable(){ 
        public void run(){ 
         setContentView(R.layout.saved); 
        } 
       }).start(); 
       // removeDialog(DIALOG2_KEY); 

我嘗試了一些其他的方式圍繞包括交換裏面是什麼的線程和執行等方式無工作的順序。上面的代碼顯示對話很快(很好),但然後崩潰。

相關問題