2012-11-22 97 views
3

我需要刷新我的活動。我有一堆問題重覆同樣的建議我完成當前的活動,並重新啓動當前的活動。或者再次爲每個小部件提供價值。爲了避免過渡我用這個代碼刷新/更新活動

Intent intent = getIntent(); 
overridePendingTransition(0, 0); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
this.finish(); 

overridePendingTransition(0, 0); 
startActivity(intent); 

但在我的情況下,在我的活動我有四個選項卡,我需要刷新所有四個選項卡。

關於相同的問題還有幾個問題 1)有了上面的代碼,如果我在其他屏幕上,當上面的一段代碼運行時,我會回到這個屏幕。

2)活動序列受到干擾。

3)保持選定的選項卡也將成爲問題

一部分即使我嘗試刷新每個選項卡seperatley,我的一個標籤都有網頁流量。如何刷新,因爲無法調用webview.loadData(),除非有視圖,因爲我不在該選項卡上將不會有視圖。

什麼是解決此問題的理想方法。任何幫助將不勝感激。

回答

0

問題並不複雜,但解決方案我想要得到優化。最後,我採取了第二種方式,即刷新每個組件。這種方法克服了擾亂活動順序的問題。對於Web視圖,我仍然使用webView.loadData(...)

總的來說,我分別管理每個標籤。如果我包含我的整個代碼,那麼它會變得笨拙,但仍然試圖融入許多重要功能。

在我的活動上課的時候我需要刷新我的活動,我稱這種方法。

private void onRefrash() 
{ 
    refreshCurrentActivity(); 

    int selectedTab = getActionBar().getSelectedNavigationIndex(); 
    switch (selectedTab) 
    { 
    case TAB1: 
     fragment1.update(); 
     break; 
    case TAB2: 
     fragment2.update(); 
     break; 
    case TAB3: 
     fragment3.update(); 
     break; 
    }  
Toast.makeText(this, getString(R.string.msg_case_updates_received), Toast.LENGTH_LONG).show(); 
    }      
} 

每個片段都被初始化,並且更新每個選項卡的update方法,我正在更新相應的web視圖。

0

這取決於你的用例。您可以再次設置ContentView()以每次膨脹佈局。如果您只是顯示一個列表,那麼您可以調用適配器來顯示列表。您必須爲TabActivity中的每個片段執行此操作。

重新加載的WebView我會再打電話來loadUrl()

至於記住選定的選項卡,您必須登錄store it,然後在TabHost中設置當前選項卡。

+0

簡單而精確。謝謝我會試一試 – Android

+0

太棒了,讓我們知道它是怎麼回事! – alexfernandez