android标签 - 开始一项新活动

时间:2009-12-31 10:09:58

标签: android tabs android-activity

TabHost中有4个选项卡,让它们分别为A,B,C和D.现在每个选项卡只是一个索引页面,点击其中任意一个显示不同的活动。

问题是当用户从选项卡中显示的内容中选择某些内容时,我需要启动另一个活动。另一个活动也应该显示在父选项卡本身中。可能吗?或者我还需要尝试别的吗?

5 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

您无法更改标签的contentView而不是开始新的活动吗?

也许我错了,但我认为在Tab中启动一个活动是不可能的,因为TabView是在一个活动中托管而不是相反(Tabview不为每个Tab托管一个活动)。

答案 2 :(得分:1)

我认为,由于这些限制,最好不要将个别活动用作标签内容。请参阅以下问题和答案以获取替代方案的指示:

Android: Why shouldn't I use activities inside tabs? Android - Tabs, MapView, activities within tabs

答案 3 :(得分:1)

总结Rukmal Dias提供的链接。这是你做的:

  1. 将您当前的活动(在标签中)更改为从活动组
  2. 派生
  3. 为要切换到的活动
  4. 创建新意图
  5. 复制/粘贴并在当前活动中调用此函数,其中“id”是您要切换到的新活动布局的“android:id”

     public void replaceContentView(String id, Intent newIntent){
          View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView(); 
          this.setContentView(view);}
    
  6. 以下是我如何通过当前选项卡式活动切换视图的示例:

    public void switchToNextActivity(View view)
    {
        Intent myIntent = new Intent(getApplicationContext(), MyNextActivity.class);
        replaceContentView("next_activity", myIntent);
    }
    

答案 4 :(得分:0)

它会丢失视图层次结构。当您按下后退按钮时,在我的情况下,应用程序将关闭。