2012-04-13 56 views
0

在Android应用程序中,我使用由4个选项卡组成的TabBar。我有一个要求获得4个选项卡的所有对象。如何能实现这一点,有什么建议。如何在Android中获取TabBar选项卡的对象?

+0

你是指什么物体? – 2012-04-13 13:34:45

+0

嗨谢尔盖Glotov,我为每个标签附加了一个活动,所以对于所有四个标签我有四个activites.I要检索这些对象,以便我可以调用活动类 – user1331691 2012-04-13 13:39:09

回答

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); 

现在你可以添加不同的标签这样

+0

Dev中的方法,上面的代码是用于添加选项卡。在上面你已经使用了名为Home.Here的Activity,我想在Tab bar类中检索Home对象。 – user1331691 2012-04-13 13:46:27

0

我能想到的两个明显的途径:

  1. 使用功能的LocalActivityManager(这应该是酒店的每ActivityGroup,因此也TabActivity)提供检索活动。您可以通过调用getCurrentActivity()或通过传入用作TabSpecgetActivity(String id)的一部分的标签来获取当前选择的Activity
  2. 根据活动构建您自己的标签本地映射并将其用于查找;例如Map<String, Activity>

在这两种情况下,您都需要将通用Activity转换为您自己的实现,以访问您自己的方法。如果这些活动都应该实现类似的方法,我建议你使用一个声明这些方法的接口,并使用该接口进行投射/映射;例如Map<String, ITabbedActivity>

或者,您可以简单地使用每个Activity的一个成员变量跟踪不同的活动。这样你可以避免投射。不是说如果你处理的是四个以上的标签,我不会推荐采用这种方法。

相关问题