我有一個保存在TabActivity中的位置列表。 TabActivity有兩個子活動:一個地圖和一個列表。所以我想獲得地理位置清單給子活動在那裏展示給他們。我知道我可以用意圖提交一些數據,但是如果列表更改,我總是希望將數據提交到當前顯示的子活動。 有沒有可能做到這一點?在TabActivity及其子活動之間交換數據。可能?
欲瞭解更多詳情,請詢問我。
非常感謝, 喬
我有一個保存在TabActivity中的位置列表。 TabActivity有兩個子活動:一個地圖和一個列表。所以我想獲得地理位置清單給子活動在那裏展示給他們。我知道我可以用意圖提交一些數據,但是如果列表更改,我總是希望將數據提交到當前顯示的子活動。 有沒有可能做到這一點?在TabActivity及其子活動之間交換數據。可能?
欲瞭解更多詳情,請詢問我。
非常感謝, 喬
是的,可以的,您可以訪問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
}
我建議建立一個靜態全局數據容器並提交更改到該對象(你可以清除,並與主要活動生命週期的幫助下建立的話)。但要確保你不會泄漏任何沉重的資源,特別是上下文引用。
那麼子活動列表是否可以識別靜態數據的變化? –
同樣的問題,我在寫這個答案的時候問自己。我會嘗試實現某種「更改」標記機制。也許是最後一次更改的簡單時間戳,以便您的活動知道哪些是*消耗的最後一次更改*。 – Knickedi
問題是你不能確定當前活動標籤?或者你根本無法交換數據? – superM