2

Possible Duplicate:
how to Keep Tabhost when start other activity

I am trying to launch new activity from "tab1", but the activity opens on whole screen. I need to open the new activity in the tab which fired the intent .

Community
  • 1
  • 1
Vipul Narkhede
  • 133
  • 4
  • 8

2 Answers2

0

You can implement it in two ways, either:

  1. Set contents of Tabs as ActivityGroup not activity, and change view of ActivityGroup according to navigation. TabGroupActivity - startChildActivity - not working But ActivityGroup is deprecated, so I would suggest to use second method.
  2. Use fragments to Implement TabBar.

http://android.codeandmagic.org/2011/07/android-tabs-with-fragments/

Community
  • 1
  • 1
ravan
  • 46
  • 2
0

Use this code for actionbar and set activity in fragment in tab.

@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);

and put this class for 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);
    }

Hope its useful for you. thanks..

kyogs
  • 6,766
  • 1
  • 34
  • 50