0

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

一切正常,除了从 1 --> 2 的第一次转换后,活动会占据整个屏幕并且选项卡永远不可见。

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

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

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

提前致谢。

4

1 回答 1

0

我花了半天多的时间,但终于找到了一个可行的解决方案。不幸的是,我仍然遇到过时的问题(Activity Group 和 getLocalActivityManager().startActivity(..))。

同样,我在 TabHost 下有一个选项卡和几个活动,所有活动都在该选项卡内运行。从一个活动到下一个活动的导航是通过单击按钮进行的​​。解决方案:

  • 在选项卡内操作的所有活动都需要扩展 ActivityGroup

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

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

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

通过这种方式,选项卡根据需要始终保持可见。希望这可以帮助某人。

于 2013-03-29T16:37:44.300 回答