我使用TabHost。 以下代码称为AActivity。
intent = new Intent().setClass(this, AActivity.class);
spec = tabHost.newTabSpec("A").setIndicator("A", res.getDrawable(R.drawable.icon)).setContent(intent);
tabHost.addTab(spec);
它在选项卡中。 但在AActivity中,我称之为BActivity。 BActivity将打开新页面,但不会在选项卡中打开。 如何让它在标签框架上? AActivity使用下面的代码来调用BActivity:
it = new Intent(this, BActivity.class);
startActivity(it);
答案 0 :(得分:5)
如果要在选项卡中打开多个活动,则在活动地点上使用活动组进行参数选项卡,并在此活动组中切换视图以在单个选项卡中打开多个活动
您可以从this tutorial
获得一些帮助答案 1 :(得分:2)
您需要更改当前选定的标签。 setCurrentTabByTag(String tag)
类中有一个名为TabHost
的方法可以执行此操作,只需传递标签的标记名称(在您的情况下为B),或者您可以使用setCurrentTab(int index)
和传递标签索引。
实施例。通常我有一个MainActivity类,这是我的TabActivity。在这个类的内部,我将在onCreate方法上创建我需要的所有选项卡。
首先,我使用标签索引设置一些静态int。
// Tab index.
public static int FIRST_TAB = 0;
public static int SECOND_TAB = 1;
稍后,我在onCreate方法中创建了我的标签。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Setting the content view.
setContentView(R.layout.main);
// Getting the TabHost object.
mTabHost = getTabHost();
// Declaring the Intent object for the tabs.
Intent intent;
// Creating the First tab.
intent = new Intent().setClass(this, MyFirstActivity.class);
addTab(mTabHost, "First", FIRST_TAB, intent)
// Creating the Second tab.
intent = new Intent().setClass(this, MySecondActivity.class);
addTab(mTabHost, "Second", SECOND_TAB, intent);
// Setting the current tab.
switchTab(FIRST_TAB);
}
public void addTab(TabHost host, String title, String tag, Intent intent) {
TabHost.TabSpec spec = host.newTabSpec(tag);
spec.setContent(intent);
spec.setIndicator(title);
host.addTab(spec);
}
最后一个将改变当前标签的方法。
public void switchTab(int index) {
mTabHost.setCurrentTab(index);
}
稍后,在MyFirstActivity内部,您可以调用MainActivity swichTab
方法并传递选项卡的索引以进行更改。
您可以检索调用Activity类的getParent()
方法的MainActivity。
MainActivity parent = (MainActivity)getParent();
答案 2 :(得分:1)
在创建tabhost的tab活动类中,实现以下方法。
public void switchTab(int tab){
tabHost.setCurrentTab(tab);
}
在AActivity / BActivity中,实现以下方法并在任何事件(您需要)上调用它:
public void switchTabInActivity(long indexTabToSwitchTo){
TabActivity tabActivity;
tabActivity = (TabActivity) this.getParent();
tabActivity.switchTab(indexTabToSwitchTo);
}
此处TabActivity是创建tabhost的类