Android选项卡 - 启动新活动

4
在TabHost中有4个选项卡,分别为A、B、C和D。现在每个选项卡只是一个索引页面,单击任何一个选项卡会显示不同的活动。
问题在于,当用户从选项卡中显示的内容中选择某个内容时,我需要启动另一个活动。这个活动也应该显示在父选项卡本身上。这可能吗?或我需要尝试其他解决方法吗?

尝试这个链接:http://richipal.com/post/2624844577 :),它对我有效。 - omnia Mm
5个回答

5

虽然这理论上回答了问题,但最好您编辑答案以包含解决方案的关键部分,并提供参考链接。 - Peter O.

2

你不能改变选项卡的contentView而不是启动一个新的Activity吗?也许我错了,但我认为在选项卡中启动活动是不可能的,因为TabView托管在一个活动中而不是相反(每个选项卡不托管一个活动)。


有没有办法清除所有内容并用另一种布局替换它们...如果您能提供一些资源或简单的编码,那将非常有帮助... - JaVadid
猜想是这样的...看起来似乎不可能...实际上我还需要保存之前活动的状态... - JaVadid
我不熟悉选项卡,请查看TabHost javadoc(http://developer.android.com/reference/android/widget/TabHost.html)。 - tbruyelle
最终,我通过将 ContentView 更改为我想要显示的新内容并通过通用的全局监听器处理数据,使它对我起作用了。虽然需要非常复杂的编码...事实上,当我写这篇文章时,我还没有完成编码...但我相信这是选项卡可以提供的最佳方法... - JaVadid
很高兴看到这个,除了检查我的答案之外,您还可以点赞以表示它有用 :) - tbruyelle
1
活动可以作为选项卡进行托管(这是Google教程中的默认设置):http://developer.android.com/resources/tutorials/views/hello-tabwidget.html - Sergii Rudchenko

1

总结一下Rukmal Dias提供的链接。你需要做的是:

  1. 将当前活动(在选项卡中)更改为从ActivityGroup派生
  2. 为要切换到的活动创建一个新的意图
  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);
}

1

0

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


1
这怎么是对原问题的回答呢? - cha0site

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接