2011-09-24 48 views
1

我有一個保存在TabActivity中的位置列表。 TabActivity有兩個子活動:一個地圖和一個列表。所以我想獲得地理位置清單給子活動在那裏展示給他們。我知道我可以用意圖提交一些數據,但是如果列表更改,我總是希望將數據提交到當前顯示的子活動。 有沒有可能做到這一點?在TabActivity及其子活動之間交換數據。可能?

欲瞭解更多詳情,請詢問我。

非常感謝, 喬

+0

問題是你不能確定當前活動標籤?或者你根本無法交換數據? – superM

回答

1

是的,可以的,您可以訪問TabActivity的子活動。 你可以得到當前活動Activity像這樣:

說你有一個Button(通常比其他TabIndicators)某處TabActivity其中調用doSomeAction()在其onClick()刷新或更改子活動內容。你會這樣做:

//this method is in TabActivity 
public void doSomeAction(View button) 
{ 
    Activity currentAct = this.getLocalActivityManager().getCurrentActivity(); 
    int index = getTabHost().getCurrentTab(); 
    if(index == 0) 
    { 
     MyListAct listAct = (MyListAct)currentAct; //MyListAct or any other Sub Activity 
     listAct.refreshList(); // refreshList() may be a method to refresh Activity  
    } 
    //else you can check for the other Activity 
} 
0

我建議建立一個靜態全局數據容器並提交更改到該對象(你可以清除,並與主要活動生命週期的幫助下建立的話)。但要確保你不會泄漏任何沉重的資源,特別是上下文引用。

+0

那麼子活動列表是否可以識別靜態數據的變化? –

+0

同樣的問題,我在寫這個答案的時候問自己。我會嘗試實現某種「更改」標記機制。也許是最後一次更改的簡單時間戳,以便您的活動知道哪些是*消耗的最後一次更改*。 – Knickedi