0

我有一个使用 TabHost 并将不同活动加载到布局的 TabContent 区域的应用程序。如果我单击一个选项卡,则会触发一个启动活动的新意图。一切运行良好,但我很好奇如何处理以下问题。基本上,如果我单击例如联系人,就会加载contacts.java 类,并且我的contacts.xml 布局文件用于setContentView。但是,如果我单击我的 contacts.xml 布局内的一个按钮,比如“管理员联系人”,我需要在同一个 tabcontent 中加载意图,它似乎只是按照自己的意图打开,而不是在 tabcontent 区域内。TabHost 的工作方式是否有我遗漏的东西?我应该有一个联系人。java 类并简单地设置不同的内容视图而不是实际开始一个新活动?我有一个标题图像和我的 main.xml 布局中定义的选项卡,我的 main.java 是包含选项卡主机的活动。我希望我的问题很清楚,非常感谢任何帮助!!!

4

2 回答 2

0

正如 Eclipse 可能告诉您的那样,TabHost所有相关的表格命令/功能都已弃用。有了这个免责声明,让我告诉你,我仍在将它用于我的应用程序!

我的印象是,使用选项卡可以让您拥有一个活动,但可以拥有多个视图。这并不意味着您必须只有一个.java。

要在选项卡之间切换,您只需要做tabHost.setCurrentTab(int);

也就是说,假设您已经设置了标签。

于 2013-05-07T18:46:30.827 回答
0

http://www.mkyong.com/android/android-tablayout-example/ 检查此示例,然后检查每个父活动,即如果您有一个包含联系人和个人资料的选项卡。然后联系人和个人资料将成为您的父活动。因此将该父活动扩展到 ActivityGroup 并制作该活动的静态上下文并在该活动中调用意图使用

 Intent intent = new Intent(ctx, c);
    View subView = getLocalActivityManager().startActivity(id,
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
    replaceView(subView);
}

public void replaceView(View subView) {
    viewStackList.add(subView);
    setContentView(subView);
}

其中 c 是您要切换到的类,viewStackList 是 View 类型的数组列表。此数组列表用于维护堆栈以进行后点击。

于 2013-05-08T09:12:27.603 回答