我坚持一个问题。实际上我的屏幕由两个选项卡组成。在每个标签下我有4-4个活动。我在单个选项卡中使用活动组的帮助显示每个活动。Android标签事件
假设我在第一个选项卡中处于活动状态。在这个标签下第二次活动(例如,第一次活动是列表活动,第二次活动给出第一次活动的结果)
我想要当我再次点击第一个标签时,它应该再次显示我第一次活动,按钮?
我坚持一个问题。实际上我的屏幕由两个选项卡组成。在每个标签下我有4-4个活动。我在单个选项卡中使用活动组的帮助显示每个活动。Android标签事件
假设我在第一个选项卡中处于活动状态。在这个标签下第二次活动(例如,第一次活动是列表活动,第二次活动给出第一次活动的结果)
我想要当我再次点击第一个标签时,它应该再次显示我第一次活动,按钮?
我以前有过这个问题......而这种情况发生是因为人们喜欢模仿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);
这会重置选项卡,以便它可以更改回您的第一个活动。当你添加新TabHost.TabSpec
到TabHost
使用
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);
到各自Intent
嗨..感谢快速reply..Where我应该使用此代码?在活动组中?或者在活动组中的所有嵌套活动中 – 2011-01-24 14:02:00
在TabActivity中。顺便说一下......接受一些问题给你的答案,否则人们不会愿意帮助你。 – Cristian 2011-01-24 14:11:53