2016-12-29 93 views
0

我試圖建立一個Android,我有一個片段Fragment_X至極讀取服務器的響應(登錄用戶的數據),然後創建一個表。片段「刷新」android

當活動開始時,片段不是第一個顯示。

登錄後,如果我選擇Fragment_X表不顯示,我不得不再次點擊它,最後出現表格。

有沒有辦法讓它出現在我第一次選擇Fragment_X

這裏是我的代碼:

Fragment_X

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_ordini, container, false); 

    connection = new DBConnection(c.getId(), getContext()); 
    connection.downloadOrdiniUtente(); 
    CookieO cookieO = new CookieO(); 
    File ordini = new File(path); 
    if (ordini.exists()) { 
     createTable(cookieO.getOrdini(), v); 
    } 


    return v; 
} 
+0

如果沒有所有其他類的方法,在這裏你還沒有顯示出來,很難知道問題是什麼。請參閱[mcve] –

回答

0

你應該等待至少500毫秒片段創建時。 onCreateVeiw等待500ms後再製作一張桌子。例如

onCreateView() { 
View view = ............ 

ProgressDialog dialog = new ProgressDialog(getActivity); 
dialog.setMessage("Wait Please"); 
dialog.show(); 

new Timer().schedule(new TimerTask() { 
      @Override 
      public void run() { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         // here u can display your table 
         showTable(); 
         dialog.dismiss(); 
        } 
       }); 
      } 
     },500); 

return view; 
} 
+0

爲什麼在500ms後執行動作?當然動作應該從onCreateView開始onCreateView –

+0

加載數據,所以當onCreateView完成時,然後開始加載數據並顯示數據,這樣你就可以顯示錶onResume()函數 –

+0

好了,然後onViewCreated。我的觀點是,我不明白爲什麼TimerTask是完全必要的,當問題狀態數據被接收,但沒有顯示,直到觸及 –