我有一个保存在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