我有一个Android应用程序,它有四个选项卡(我使用主TabActivity与TabHost和TabSpecs)。
在我的一个子活动(在选项卡中打开的活动)中,我需要打开选项卡而不是通过单击选项卡标题,我不知道如何执行此操作。
例如,我的活动中有一个按钮,当我点击它时,它会打开一个不同的选项卡。
目前,这就是我所做的:
Intent intent = new Intent(myActivity.this, myTabActivity.class);
intent.putExtra("ComeFrom", true);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
然后在TabActivity中,如果我真实地阅读“ComeFrom”额外我打开了希望的标签,但问题是它会杀死所有其他活动。所以,如果有人知道更好(更清洁)的方法来做这个伎俩,请告诉我......
答案 0 :(得分:5)
找到一个更容易(我认为)的答案:
声明了一个public,static和self变量,并在onCreate方法上填充它。 F.e:
public class TheActivity extends TabActivity {
public static TheActivity self;
...
@Override
public void onCreate(Bundle savedInstanceState) {
self=this;
在选项卡中运行的任何活动上。你可以这样做:
TabHost tabHost = TheActivity.self.getTabHost();
tabHost.setCurrentTab(0);
为我工作好,希望为别人服务!
答案 1 :(得分:0)
你必须使用TabHost的“setCurrentTab(...)”。在我的一个项目中,我在主Activity(带有TabHost的那个)中创建了一个静态方法,命名为“swtichToTab(int tab)”。在我的子活动中(标签内的那些)可以调用“MainActivity.switchToTab()”来触发切换。
这可能不是最干净的方法,我相信你也可以使用广播意图实现这一点。
答案 2 :(得分:0)
您可以创建一个BroadcastReceiver,并使用该选项卡的索引作为额外
发送广播答案 3 :(得分:0)
您可以对选项卡的内容使用视图而不是活动。这样,代码更简单,并且不使用尽可能多的内存。此外,您可以使用setCurrentTab(tabIndex)
方法轻松切换视图。
我有一个简单的教程here。它有一个带有列表和地图视图的选项卡活动。单击列表中的项目时,活动将动态转到地图视图(使用setCurrentTab(tabIndex)
方法)。您可以轻松修改此按钮以切换视图。