TabHost中有4个选项卡,让它们分别为A,B,C和D.现在每个选项卡只是一个索引页面,点击其中任意一个显示不同的活动。
问题是当用户从选项卡中显示的内容中选择某些内容时,我需要启动另一个活动。另一个活动也应该显示在父选项卡本身中。可能吗?或者我还需要尝试别的吗?
答案 0 :(得分:5)
试试这个,在android cookbook中找到这个解决方案, http://androidcookbook.com/Recipe.seam;jsessionid=5424397F3130CE7769FF47DD67742911?recipeId=1693&recipeFrom=ViewTOC
答案 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提供的链接。这是你做的:
复制/粘贴并在当前活动中调用此函数,其中“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);
}
答案 4 :(得分:0)
它会丢失视图层次结构。当您按下后退按钮时,在我的情况下,应用程序将关闭。