2011-09-24 58 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