我有3个Tabs Tab1,tab2,Tab3。在tab1中我正在加载page1.java。在第1页中有一个下一步按钮。我需要在点击Page1.java上的下一个按钮时更改为page2.java。我只需要更改内容。我需要那里的标签永久。可能吗。 我在下一个按钮点击时这样做,
Intent nextPageIntent = new Intent(context, Page2.class);
startActivity(nextPageIntent);
请帮帮我。
答案 0 :(得分:1)
<强>更新强>
因此,您需要在标签中使用ActivityGroup
来更改活动。
TabHost tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("Page1").setContent(
new Intent(this, Page1.class)));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Page2").setContent(
new Intent(this, Page2.class)));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("Page3").setContent(
new Intent(this, Page3.class)));
Page1
注意在第一个标签中显示哪个活动。使用setContentView
,您可以在触发操作后将另一个视图带到前面。
Intent intent = new Intent(context, Page2.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
View view = Page1.group.getLocalActivityManager().
startActivity(intent).getPage2View();
Page1.group.setContentView(view);
您需要告诉ActivityGroup哪个视图位于顶部并设置相应的Flag,以便View位于顶部。
当然,现在您必须跟踪前面的活动,他们的行为以及按下后退按钮会发生什么。但这为您提供了自定义行为的空间。
更多来自:use-android-activitygroup-within-tabhost-to-show-different-activity。
答案 1 :(得分:0)
tabHost.setCurrentTab(2)
应该这样做。
答案 2 :(得分:0)
您可以尝试replacing fragment。
因此,请将所有页面(针对一个标签页)保留在单独的片段中。加载片段1 - 即最初的Page 1,然后单击Next Button,替换片段,如下所示:
nextBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
Page2Fragment fragment = (Page2Fragment)myFragmentManager.findFragmentByTag(TAG_1);
if (fragment == null) {
//load page 2 in fragment
FragmentTransaction fragmentTransaction = myFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.maincontainer, myFragment1, TAG_1);
fragmentTransaction.commit();
}
}
});
希望它有所帮助。