如何在tabhost的单个选项卡中实现一系列活动?

时间:2013-03-28 20:25:00

标签: android android-tabhost fragment

我已经实现了TabHost。在一个选项卡中,我有Activity1,它在点击一个按钮后调用Activity2,点击一个按钮后调用Activity3,点击按钮后调用Activity1等。不需要任何反向堆栈功能,只需1 - > 2 - > 3 - >所有三个活动都有一个单独的布局文件。

一切正常,除了从1开始的第一次转换之后 - > 2活动抓住整个屏幕,标签永远隐藏。

问题:如何将这三项活动保持在de tab区域的限制范围内,并且可以看到标签?这个问题以前已经多次被认识到了;过去的解决方案是ActivityGroups,但不推荐使用这些解决方案,而是建议使用Fragments。我在这里看到了很多例子,但没有什么可以帮助我。

  • 我可以保留我的三个活动(Activity1扩展活动等)吗?
  • 我应该将片段标签添加到布局文件吗?
  • 我是否需要处理交易?
  • 我应该使用一个或一个片段类吗?

请你给我一些提示我应该怎么做?如果你告诉我需要使用哪些类以及它们是什么类型,我已经得到了帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我花了半天多的时间,但终于找到了一个有效的解决方案。不幸的是,我仍然坚持使用已弃用的问题(Activity Group和getLocalActivityManager()。startActivity(..))。

我再次在TabHost下有一个标签和几个活动,都在该标签内操作。通过按钮点击进行从一个活动到下一个活动的导航。解决方案:

  • 所有在标签中运行的活动都需要扩展ActivityGroup

  • 所有活动类都需要一个按钮处理程序,链接到下一个活动,如下所示:

    public void onBtnClicked(View view){     Intent intent = new Intent(view.getContext(),NextActivity.class);     replaceContentView(“NextActivity”,intent); }

    public void replaceContentView(String id,Intent newIntent){     View view = getLocalActivityManager()。startActivity(id,newIntent。             addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))getDecorView();     this.setContentView(视图); }

根据需要,标签始终可见。 希望这有助于某人。