在 Android 应用程序中,我使用的是由 4 个选项卡组成的 TabBar。我需要获取 4 个选项卡的所有对象。如何实现这一点,任何建议。
问问题
229 次
2 回答
0
TabHost.TabSpec spec; // This is the Object of TabBar
Intent intent;
// Single Activity
intent = new Intent().setClass(this, Home.class);
spec = tabHost.newTabSpec(getResources().getString(R.string.Home)).setIndicator(getResources().getString(R.string.Home),res.getDrawable(R.drawable.home)).setContent(intent);
tabHost.addTab(spec);
现在你可以像这样添加不同的标签
于 2012-04-13T13:42:47.437 回答
0
我可以想到两种明显的方法:
- 使用 a
LocalActivityManager
(应该在每个中可用ActivityGroup
,因此也在 中TabActivity
)提供的函数来检索活动。您可以Activity
通过调用获得当前选择的内容,也可以getCurrentActivity()
通过传入用作 : 一部分的标签TabSpec
来获取任何内容getActivity(String id)
。 - 针对活动构建您自己的本地标签映射并将其用于查找;例如一个
Map<String, Activity>
。
在这两种情况下,您都需要将泛型Activity
转换为您自己的实现,以便访问您自己的方法。如果活动都应该实现类似的方法,我建议您使用声明这些方法的接口,并使用该接口进行转换/映射;例如Map<String, ITabbedActivity>
。
或者,您可以使用一个成员变量 per 简单地跟踪不同的活动Activity
。这样你就可以避免铸造。并不是说如果您要处理四个以上的选项卡,我不建议您采用这种方法。
于 2012-04-13T14:24:43.037 回答