getLocalActivityManager()。getActivity(tabTag)返回NULL

时间:2011-09-02 12:17:00

标签: android tabs tabwidget

我有2个tagID为“tag01”和“tag02”的标签。我已明确设定 通过调用tabHost.setCurrentTab(0)

将焦点放在第一个选项卡上

当我打电话给getLocalActivityManager().getActivity("tag01")时,我得到了 活动的对象,但当我打电话

getLocalActivityManager().getActivity("tag02") then i get NULL.
//Log.i("tab status: ", getLocalActivityManager().getActivity("tag02")+""); prints null
//Log.i("tab status: ", getLocalActivityManager().getActivity("tag01")+""); prints com.test.TestActivity@437c06c8

现在,当我再次运行我的应用程序时,再次单击第二个选项卡 getLocalActivityManager().getActivity("tag02")给出了对象 (logcat中的toString())。 因此,经过一次又一次的检查,我发现“只有活动 第一个标签(我明确设置了焦点 tabHost.setCurrentTab(0))返回非null“,其他选项卡返回null 除非你没有点击那些标签。 当我点击所有标签时,至少我点击所有标签 然后他们getLocalActivityManager().getActivity(anyTag)返回 object(我正在跟踪toString())。如何从其他人访问活动 选项卡没有单击其他选项卡,因为用户不知道他/她 必须单击选项卡。 请提出一些建议。因为我必须访问活动 我的应用中的标签。 我希望你能理解我的问题。

感谢

2 个答案:

答案 0 :(得分:1)

未创建活动!

如果您有n个标签您可以在onCreate()中执行此操作:

for(int i=n-1;i>0;i--)
    tabHost.setCurrentTab(i);

这样,显示的选项卡是第一个选项卡(索引为0),getLocalActivityManager().getActivity(anyTag)将返回非空

答案 1 :(得分:0)

我可以通过在调用getactivity函数之前设置CurrentTab属性值来获取活动实例而不运行for循环。

tabHost.setCurrentTab(i); //i index of anytab activity
getLocalActivityManager().getActivity(anyTag);