在Android中的指定选项卡内启动新活动
可能重复:在Android中的指定选项卡内启动新活动,android,Android,可能重复: 我正试图从“tab1”启动新活动,但活动会在整个屏幕上打开。我需要在触发意图的选项卡中打开新活动 您可以通过两种方式实现它,或者: 将选项卡的内容设置为ActivityGroup而不是activity,并根据导航更改ActivityGroup的视图。 但ActivityGroup已被弃用,所以我建议使用第二种方法 使用片段实现TabBar 您可以通过两种方式实现它: 将选项卡的内容设置为ActivityGroup而不是activity,并根据导航更改ActivityGroup的视图
我正试图从“tab1”启动新活动,但活动会在整个屏幕上打开。我需要在触发意图的选项卡中打开新活动 您可以通过两种方式实现它,或者:
您可以通过两种方式实现它:
将此代码用于actionbar,并在选项卡中的片段中设置活动
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
appContext = getApplicationContext();
//ActionBar
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab PlayerTab = actionbar.newTab().setText("Fragment A");
ActionBar.Tab StationsTab = actionbar.newTab().setText("Fragment B");
Fragment PlayerFragment = new AFragment();
Fragment StationsFragment = new BFragment();
PlayerTab.setTabListener(new MyTabsListener(PlayerFragment));
StationsTab.setTabListener(new MyTabsListener(StationsFragment));
actionbar.addTab(PlayerTab);
actionbar.addTab(StationsTab);
然后把这个类放到tab中
class MyTabsListener implements ActionBar.TabListener {
public Fragment fragment;
public MyTabsListener(Fragment fragment) {
this.fragment = fragment;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
Toast.makeText(StartActivity.appContext, "Reselected!", Toast.LENGTH_LONG).show();
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(R.id.fragment_container, fragment);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
}
希望对你有用。
谢谢..将此代码用于actionbar并在选项卡中的片段中设置活动
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
appContext = getApplicationContext();
//ActionBar
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab PlayerTab = actionbar.newTab().setText("Fragment A");
ActionBar.Tab StationsTab = actionbar.newTab().setText("Fragment B");
Fragment PlayerFragment = new AFragment();
Fragment StationsFragment = new BFragment();
PlayerTab.setTabListener(new MyTabsListener(PlayerFragment));
StationsTab.setTabListener(new MyTabsListener(StationsFragment));
actionbar.addTab(PlayerTab);
actionbar.addTab(StationsTab);
然后把这个类放到tab中
class MyTabsListener implements ActionBar.TabListener {
public Fragment fragment;
public MyTabsListener(Fragment fragment) {
this.fragment = fragment;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
Toast.makeText(StartActivity.appContext, "Reselected!", Toast.LENGTH_LONG).show();
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(R.id.fragment_container, fragment);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
}
希望对你有用。
谢谢..您使用的是操作栏选项卡还是不推荐的选项卡activity?使用当前选项卡调用选项卡activity?您使用的是tabhost还是actionbar选项卡?您使用的是操作栏选项卡还是不推荐的TabActivity?使用当前选项卡调用选项卡activity?您使用的是tabhost还是actionbar选项卡?