【问题标题】:android tabs - starting a new activityandroid tabs - 开始一个新的活动
【发布时间】:2009-12-31 10:09:57
【问题描述】:

TabHost 中有 4 个选项卡,分别是 A、B、C 和 D。现在每个选项卡都只是一个索引页面,单击其中任何一个都会显示不同的活动。

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

【问题讨论】:

标签: android tabs android-activity


【解决方案1】:

【讨论】:

  • 虽然这在理论上可以回答问题,但您最好编辑答案以包含解决方案的基本部分,并提供参考链接。
【解决方案2】:

你不能改变你的标签的 contentView 而不是开始一个新的 Activity 吗?

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

【讨论】:

  • 无论如何我可以删除所有内容并用另一种布局替换它们......如果你能提供一些资源或简单的编码会很有帮助......
  • 猜猜...所以看来不可能...实际上我也需要保存以前活动的状态...
  • 我不熟悉标签,请尝试查看 TabHost javadoc (developer.android.com/reference/android/widget/TabHost.html)。
  • 好吧,Thomas 终于为我工作了,只需将 ContentView 更改为我希望通过一个通用的通用侦听器显示和处理数据的新内容……尽管它需要非常复杂的编码。 ..事实上,我在写这篇文章时还没有完成编码......但我确信这是选项卡可以提供的最好方法......
  • Activity 确实可以作为选项卡托管(这是 Google 教程中的默认设置):developer.android.com/resources/tutorials/views/…
【解决方案3】:

我认为普遍的共识是,由于这些限制,最好不要将单个活动用作选项卡内容。请参阅以下问题和答案以获取替代方案的提示:

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

【讨论】:

    【解决方案4】:

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

    1. 将您当前的 Activity(位于选项卡中)更改为从 ActivityGroup 派生
    2. 为要切换到的 Activity 创建一个新 Intent
    3. 复制/粘贴并在您当前的活动中调用此函数,其中“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);}
      

    以下是我如何调用从当前选项卡式活动中切换视图的示例:

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

      • 如何回答原始问题?
      猜你喜欢
      • 1970-01-01
      • 2012-04-20
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多