2011-01-24 46 views
0

我坚持一个问题。实际上我的屏幕由两个选项卡组成。在每个标签下我有4-4个活动。我在单个选项卡中使用活动组的帮助显示每个活动。Android标签事件

假设我在第一个选项卡中处于活动状态。在这个标签下第二次活动(例如,第一次活动是列表活动,第二次活动给出第一次活动的结果)

我想要当我再次点击第一个标签时,它应该再次显示我第一次活动,按钮?

回答

0

我以前有过这个问题......而这种情况发生是因为人们喜欢模仿iPhone的底部栏。 Android应用程序无法这样工作,并且使用Activity Group始终是糟糕的UI设计的信号。

无论如何,这是我做过什么:

tabHost.setCurrentTabByTag(TAB_ID_MORE); 
tabHost.getCurrentTabView().setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     if(MoreGroupActivity.self != null) { 
      MoreGroupActivity.self.reset(); 
     } 
     tabHost.setCurrentTabByTag(TAB_ID_MORE); 
    } 
}); 
tabHost.setCurrentTabByTag(TAB_ID_HOME); 

上面的代码是不通用的,但会给你我找到了解决方法的想法。让我来解释:

  • tabHost.setCurrentTabByTag(TAB_ID_MORE);我用它来选择当前选项卡(在我的情况下,主标签是另一个选项卡,所以我不得不来此,然后用tabHost.setCurrentTabByTag(TAB_ID_HOME);改回来)。我的意思是,就我而言,唯一具有该行为的选项卡是“更多”选项卡。
  • tabHost.getCurrentTabView().setOnClickListener这使您可以将监听器放在选项卡上。正如你可能已经注意到的,在这种情况下使用OnChangeTabListener不是一种选择。
  • MoreGroupActivity.self在我的小组活动中,我有一个静态字段引用它自己的组活动。使用这种蹩脚的方法时,这种黑客很常见。
  • tabHost.setCurrentTabByTag(TAB_ID_MORE);这会重置选项卡,以便它可以更改回您的第一个活动。
+0

嗨..感谢快速reply..Where我应该使用此代码?在活动组中?或者在活动组中的所有嵌套活动中 – 2011-01-24 14:02:00

+0

在TabActivity中。顺便说一下......接受一些问题给你的答案,否则人们不会愿意帮助你。 – Cristian 2011-01-24 14:11:53

0

当你添加新TabHost.TabSpecTabHost

使用

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);

到各自Intent