2012-05-26 2 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(). И поскольку это вкладка, на вкладках нет 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 осуждается, потому что с последними версиями андроида Fragments и FragmentActivity заменили его. Таким образом, ваш код становится более понятным и хорошо разделенным вместо TabHost.

Смежные вопросы