4

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

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

4

5 回答 5

5

试试这个,在 android 食谱中找到了这个解决方案, http://androidcookbook.com/Recipe.seam;jsessionid=5424397F3130CE7769FF47DD67742911?recipeId=1693&recipeFrom=ViewTOC

于 2012-02-06T10:16:34.380 回答
2

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

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

于 2009-12-31T10:18:22.657 回答
1

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

Android:为什么我不应该在选项卡中使用活动? Android - 选项卡、地图视图、选项卡内的活动

于 2009-12-31T11:51:51.487 回答
1

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

  1. 将您当前的活动(位于选项卡中)更改为从 ActivityGroup 派生
  2. 为要切换到的 Activity 创建一个新意图
  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);
}
于 2012-03-12T03:37:55.780 回答
0

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

于 2012-03-29T11:07:30.940 回答