title: How to use back pressed options fragment to fragment in android
body: <p>Back press is not working from fragment to fragment.(my application contains navigation drawer and Tab view.) My Main Activity code is given below.i have added the back press method please help me....</p>
  
  <pre><code>            public class Main Activity extends Activity   {
  
                  ImageView image;
                  private DrawerLayout mDrawerLayout;
                  private ListView mDrawerList;
                  private ActionBarDrawerToggle mDrawerToggle;
                  // nav drawer title
                  private CharSequence mDrawerTitle;
                  // used to store app title
                  private CharSequence mTitle;
                  // slide menu items
                  private String[] navMenuTitles;
                  private TypedArray navMenuIcons;
                  private ArrayList&lt;NavDrawerItem&gt; navDrawerItems;
                  private NavDrawerListAdapter adapter;
  
                  ExpandableListView expListView;
  
                  @Override
                  protected void onCreate(Bundle savedInstanceState) {
                      super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_main);
  
                      Runtime.getRuntime().maxMemory();
                      // load slide menu items
                      navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
  
                      // nav drawer icons from resources
                      navMenuIcons = getResources()
                              .obtainTypedArray(R.array.nav_drawer_icons);
  
                      mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
                      mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
                      navDrawerItems = new ArrayList&lt;NavDrawerItem&gt;();
                      // Home
                      navDrawerItems.add(new NavDrawerItem(navMenuTitles[0],  navMenuIcons.getResourceId(0, -1)));
                      // Find People
                      navDrawerItems.add(new NavDrawerItem(navMenuTitles[1],  navMenuIcons.getResourceId(1, -1)));
                      // Photos
                      navDrawerItems.add(new NavDrawerItem(navMenuTitles[2],  navMenuIcons.getResourceId(2, -1)));
                      // Communities, Will add a counter here
                      navDrawerItems.add(new NavDrawerItem(navMenuTitles[3],  navMenuIcons.getResourceId(3, -1)));
                      // Pages
                      navDrawerItems.add(new NavDrawerItem(navMenuTitles[4],  navMenuIcons.getResourceId(4, -1)));
                      // What's hot, We  will add a counter here
                      navDrawerItems.add(new NavDrawerItem(navMenuTitles[5],  navMenuIcons.getResourceId(5, -1)));
                      navDrawerItems.add(new NavDrawerItem(navMenuTitles[6],  
                      // Recycle the typed array
                      navMenuIcons.recycle();
  
                      mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
                     // mDrawerLayout.setBackgroundDrawable(new ColorDrawable(R.drawable.border));
                      // setting the nav drawer list adapter
                      adapter = new NavDrawerListAdapter(getApplicationContext(),
                              navDrawerItems);
                      mDrawerList.setAdapter(adapter);
                      ActionBar actionBar = getActionBar();
                      // enabling action bar app icon and behaving it as toggle button
                      getActionBar().setDisplayHomeAsUpEnabled(true);
                      getActionBar().setHomeButtonEnabled(true);
                      actionBar.setHomeButtonEnabled(true);
                      actionBar.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
  
                      actionBar.setCustomView(R.layout.custom_view);
                      // actionBar.setCustomView(R.layout.custom_view1);
                      actionBar.setDisplayShowCustomEnabled(true);
                      actionBar.show();
                      addListenerOnButton();
  
                      mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                              R.drawable.draw,//nav menu toggle icon
                              R.string.app_name, // nav drawer open - description for accessibility
                              R.string.app_name // nav drawer close - description for accessibility
                      ) {
                          public void onDrawerClosed(View view) {
                              getActionBar().setTitle(mTitle);
                              // calling onPrepareOptionsMenu() to show action bar icons
                              invalidateOptionsMenu();
                          }
  
                          public void onDrawerOpened(View drawerView) {
                              getActionBar().setTitle(mDrawerTitle);
                              // calling onPrepareOptionsMenu() to hide action bar icons
                              invalidateOptionsMenu();
                          }
                      };
                      mDrawerLayout.setDrawerListener(mDrawerToggle);
  
                      if (savedInstanceState == null) {
                          // on first time display view for first nav item
                          displayView(0);
                      }
                  }
  
                  /**
                   * Slide menu item click listener
                   * */
  
                  private class SlideMenuClickListener implements
                          ListView.OnItemClickListener {
                      @Override
                      public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position,
                              long id) {
                          // display view for selected nav drawer item
                          displayView(position);
                      }
                  }
  
                  @Override
                  public boolean onCreateOptionsMenu(Menu menu) {
                      getMenuInflater().inflate(R.menu.main, menu);
                      return true;
                  }
  
                  @Override
                  public boolean onOptionsItemSelected(MenuItem item) {
                      // toggle nav drawer on selecting action bar app icon/title
                      if (mDrawerToggle.onOptionsItemSelected(item)) {
  
                      }
  
                      return true;
  
                  }
  
  
                  /**
                   * Diplaying fragment view for selected nav drawer list item
                   * */
                  private void displayView(int position) {
                      // update the main content by replacing fragments
                      Fragment fragment = null;
  
                      switch (position) {
                      case 0:
                           fragment = new FirstFragment();
                           break;
                      case 1:
                           fragment = new HomeFragment();
                           break;
                      case 2:
                          fragment = new FindPeopleFragment();
                          break;
                      case 3:
                          fragment = new PhotosFragment(); 
                          break;
                      case 4:
                          fragment = new PagesFragment();
                          break;
                      case 5:
                          fragment = new CommunityFragment();
                          break;
  
                      default:
                          break;
                      }
   **Edited Code:**               
  
  if (fragment != null) {
               FragmentManager fragmentManager = getFragmentManager();
  
               FragmentTransaction ft = fragmentManager.beginTransaction();
  
               ft.addToBackStack(null);
               ft.replace(R.id.frame_container, fragment);
  
              // Add this transaction to the back stack, so when the user presses back,// it rollbacks.
  
              ft.commit();
  
                          // update selected item and title, then close the drawer
                          mDrawerList.setItemChecked(position, true);
                          mDrawerList.setSelection(position);
                          setTitle(navMenuTitles[position]);
                          mDrawerLayout.closeDrawer(mDrawerList);
                      } else {
                          // error in creating fragment
                          Log.e("MainActivity", "Error in creating fragment");
                      }
  
  
  
                  }
                  @Override
                  public void setTitle(CharSequence title) {
                      mTitle = title;
                      getActionBar().setTitle(mTitle);
                  }
  
                  private void addListenerOnButton() {
                      // TODO Auto-generated method stub
  
                      image = (ImageView) findViewById(R.id.actionBarLogo);
  
                      image.setOnClickListener(new OnClickListener() {
  
                          @Override
                          public void onClick(View v) {
  
                              Fragment fd2 = new MovieActivity();
  
  
                              android.app.FragmentTransaction  ft2 =
                                      getFragmentManager().beginTransaction();
                                            ft2.replace(R.id.frame_container, fd2); 
                                            ft2.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
                                            ft2.addToBackStack(null);
                                            ft2.commit();
  
  
                          }
                      });
                  }
                  @Override
                  public void onBackPressed() {
              int count = getFragmentManager().getBackStackEntryCount();
              if (count == 0) {           
              super.onBackPressed();            
              }
              else {            
                  getFragmentManager().popBackStack();            
                 }
          }
                  @Override
                  protected void onPostCreate(Bundle savedInstanceState) {
                      super.onPostCreate(savedInstanceState);
                      // Sync the toggle state after onRestoreInstanceState has occurred.
                      mDrawerToggle.syncState();
                  }
  
                  @Override
                  public void onConfigurationChanged(Configuration newConfig) {
                      super.onConfigurationChanged(newConfig);
                      // Pass any configuration change to the drawer toggls
                      mDrawerToggle.onConfigurationChanged(newConfig);
                  }
  
              }
  </code></pre>