在TabHost中有4个选项卡,分别为A、B、C和D。现在每个选项卡只是一个索引页面,单击任何一个选项卡会显示不同的活动。
问题在于,当用户从选项卡中显示的内容中选择某个内容时,我需要启动另一个活动。这个活动也应该显示在父选项卡本身上。这可能吗?或我需要尝试其他解决方法吗?
问题在于,当用户从选项卡中显示的内容中选择某个内容时,我需要启动另一个活动。这个活动也应该显示在父选项卡本身上。这可能吗?或我需要尝试其他解决方法吗?
我在android cookbook中发现了一种解决方法,建议您尝试一下, http://androidcookbook.com/Recipe.seam;jsessionid=5424397F3130CE7769FF47DD67742911?recipeId=1693&recipeFrom=ViewTOC
这个链接提供了一个解决方案。你不能改变选项卡的contentView而不是启动一个新的Activity吗?也许我错了,但我认为在选项卡中启动活动是不可能的,因为TabView托管在一个活动中而不是相反(每个选项卡不托管一个活动)。
总结一下Rukmal Dias提供的链接。你需要做的是:
复制/粘贴并在当前活动中调用此函数,其中“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);
}
我认为普遍共识是最好不要将单独的活动用作选项卡内容,因为存在这些限制。请参见以下问题和答案,了解替代方案的指针:
它丢失了视图层次结构。在我的情况下,当您按下返回按钮时,应用程序会关闭。