Android 在TabActivity的FrameLayout内启动另一个活动

Android 在TabActivity的FrameLayout内启动另一个活动,android,android-activity,tabactivity,Android,Android Activity,Tabactivity,我正在尝试制作一个应用程序,它在屏幕底部有4个选项卡 它们都包含活动(意图) 我想将任何一个活动导航到另一个活动。但我想让TabWidget保持可见 如果你知道的话,请尽快告诉我 Shaiful这是在中实现的 但是,当多次调用StackOverFlow活动时,会出现错误。4.我费了很大劲,但还是没能解决。。请告诉某人解决这个问题的方法 还需要替换选项卡中的某个活动,而不是子活动。如何做到这一点?在任何时刻可能只有一项活动。与此相关的文档由于更换活动而发生的错误问题可以通过以下方式解决 首先让我

我正在尝试制作一个应用程序,它在屏幕底部有4个选项卡

它们都包含活动(意图)

我想将任何一个活动导航到另一个活动。但我想让TabWidget保持可见

如果你知道的话,请尽快告诉我


Shaiful

这是在中实现的

但是,当多次调用StackOverFlow活动时,会出现错误。4.我费了很大劲,但还是没能解决。。请告诉某人解决这个问题的方法


还需要替换选项卡中的某个活动,而不是子活动。如何做到这一点?

任何时刻可能只有一项活动。与此相关的文档

由于更换活动而发生的错误问题可以通过以下方式解决

首先让我们了解流程:

  • 我们在一个选项卡主机中有一个活动(比如一个列表),我们需要从中转到同一选项卡下的下一个活动(比如单击项目的详细信息)。为此,我们可以使用替换活动的概念。还可以设置所选选项卡的标志,以及其他用于了解现在显示的详细信息的标志

  • 当我们按下back键时,我们应该在同一选项卡下获取上一个活动。为此,我们可以在使用所选选项卡的特定标志时刷新选项卡,而不是再次替换该活动。此外,如果show details的标志为true,我们将在同一选项卡中查看列表,或者在tabwidget之前查看活动(正常使用onBackPressed)

  • 代码可以如下所示

  • 从列表到详细信息
  • (这可以在onClickListener中)

  • 完成back pressed后,我们将覆盖选项卡下每个活动中的on BackPressed,以便从详细信息屏幕再次转到列表

    @Override
      public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    if (MathHelper.SHOW_DETAILS) {
        Log.e("back", "pressed accepted");
        Constants.LIST_ACTIVITY = 1;
        Constants.SHOW_DETAILS = false;
        Intent intent = new Intent(this, Tab_widget.class);
        startActivity(intent);
        finish();
      }
     }
    
  • 这里最重要的部分是 常数.LIST_活动=1;它指示我们在哪个选项卡中。因此,相应的活动的值将为0,1,2…等

    同样,要在刷新选项卡活动时加载正确的列表(Activty),我们必须在创建选项卡后将其包含在TabWidget onCreate中

    tabHost.setCurrentTab(Constants.LIST_ACTIVITY);
    

    需要更多信息,无法理解您的问题。如果不确定,我猜在多次切换选项卡后会发生堆栈溢出。这是因为活动是使用活动堆栈管理的(请参阅)。必须能够将位于堆栈顶部的活动替换为新调用的活动,而不是推送它。但我不确定这是最好的方式(这是一个真正的问题)。这在这里没有任何帮助。
    tabHost.setCurrentTab(Constants.LIST_ACTIVITY);