2012-05-26 94 views
1

我有一個帶有幾個活動的tablayout,並且從一個標籤更改爲另一個需要幾秒鐘(因爲它需要大量的數據)。當它正在加載時,我想要一個對話框出現,指出加載。我用一個進度條創建了一個非常簡單的對話框,但我不知道何時該調用它以及什麼時候解除它。在TabLayout中加載屏幕

loading = new Dialog(FatActivity.this); 
     loading.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     loading.setContentView(R.layout.dialog_loading); 
     loading.show(); 

每個選項卡顯示的活動,但如果我把它放在onCreate()方法(右後它,所以第一行),它不出現,活動只加載後。那麼我應該把它放在哪裏,或者如果這是一個加載屏幕的錯誤方法,那麼我應該怎麼做?我正在考慮這個問題,因爲我只需要在onCreate()結束時調用它並解除它。而且由於它是一個tablayout,所以在這些標籤上沒有onclicklistener,所以我也不能使用它。

在此先感謝!

回答

0

您可以使用AsyncTask最好的方式來顯示加載屏幕...

onCreate() 
{ 
    dialog.show(); 
    new LoadData().execute(null); 
} 
--------------------------------------------------------------------------  
    private class LoadData extends AsyncTask<URL, Integer, Boolean> { 
     protected Long doInBackground(URL... urls) { 
      // your code to load data here <------ 
      return true; 
     } 

     protected void onPostExecute(Boolean result) { 
      dialog.dismiss(); 
     } 
    } 
+0

這是onCreate()的一部分? –

+0

請參閱編輯的答案... – MAC

+0

請注意,如果您沒有傳遞任何內容執行AsyncTask(就像您在這裏執行的操作,使用硬編碼的空值)。您應該將第一種類型的AsyncTask設置爲Void,並且該語句只是execute()。 – Schoentoon

0

正如Gtumca說使用的AsyncTask,但我要舉報你,TabHost與Android片段的最後一個版本,因爲棄用和FragmentActivity已經取代它。 通過這種方式,您的代碼將變得更易於理解,而不是TabHost。