title: How to detect when back button pressed in fragment android?
body: <p>I have project with navigation drawer with fragment, with 5 menu, the problem is when i go to menu 4 and the i press the back button the app closed, but i need the app back to first menu which is all the menu in fragment.</p>
  
  <p>This is code for Main Activity (Navigation Drawer)</p>
  
  <pre><code>public class MainActivity extends AppCompatActivity{
  DrawerLayout mDrawerLayout;
  NavigationView mNavigationView;
  FragmentManager mFragmentManager;
  FragmentTransaction mFragmentTransaction;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      /**
       *Setup the DrawerLayout and NavigationView
       */
  
      mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
      mNavigationView = (NavigationView) findViewById(R.id.shitstuff) ;
  
      /**
       * Lets inflate the very first fragment
       * Here , we are inflating the TabFragment as the first Fragment
       */
  
      mFragmentManager = getSupportFragmentManager();
      mFragmentTransaction = mFragmentManager.beginTransaction();
      mFragmentTransaction.replace(R.id.containerView,new Recommendation()).commit();
      /**
       * Setup click events on the Navigation View Items.
       */
  
      mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
          @Override
          public boolean onNavigationItemSelected(MenuItem menuItem) {
              mDrawerLayout.closeDrawers();
  
  
  
              if (menuItem.getItemId() == R.id.nav_item_lux_level_recomen) {
                  FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                  fragmentTransaction.replace(R.id.containerView,new Recommendation()).commit();
  
              }
  
              if (menuItem.getItemId() == R.id.nav_item_room_index_calc) {
                  FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                  xfragmentTransaction.replace(R.id.containerView,new RoomIndex()).commit();
              }
  
              if (menuItem.getItemId() == R.id.nav_item_utilization_factor_calc) {
                  FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                  xfragmentTransaction.replace(R.id.containerView,new UtilizationFactorCalculator()).commit();
              }
  
              if (menuItem.getItemId() == R.id.nav_item_conversions) {
                  FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                  xfragmentTransaction.replace(R.id.containerView,new Conversion()).commit();
              }
              if (menuItem.getItemId() == R.id.nav_item_lux) {
                  FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                  xfragmentTransaction.replace(R.id.containerView,new LuxSensor()).commit();
              }
  
  
              return false;
          }
  
      });
  
      /**
       * Setup Drawer Toggle of the Toolbar
       */
  
      android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
      ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout, toolbar,R.string.app_name,
              R.string.app_name);
  
      mDrawerLayout.setDrawerListener(mDrawerToggle);
  
      mDrawerToggle.syncState();
  
  
  
  
  }
  </code></pre>
  
  <p>This one of the Menu (Fragment)</p>
  
  <pre><code>public class LuxSensor extends Fragment {
  TextView textLIGHT_available, textLIGHT_reading;
  FragmentManager mFragmentManager;
  @Nullable
  @Override
  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
      View x =  inflater.inflate(R.layout.lux_sensor,null);
      textLIGHT_reading
              = (TextView)x.findViewById(R.id.LIGHT_reading);
  
      SensorManager mySensorManager = (SensorManager)getActivity().getSystemService(Context.SENSOR_SERVICE);
  
      Sensor LightSensor = mySensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
      if(LightSensor != null){
          mySensorManager.registerListener(
                  LightSensorListener,
                  LightSensor,
                  SensorManager.SENSOR_DELAY_NORMAL);
  
      }else{
          textLIGHT_available.setText("Sensor.TYPE_LIGHT NOT Available");
      }
      FragmentManager fm = getFragmentManager();
  
      return x;
  }
  
  
  
  
  
  private final SensorEventListener LightSensorListener
          = new SensorEventListener(){
  
      @Override
      public void onAccuracyChanged(Sensor sensor, int accuracy) {
          // TODO Auto-generated method stub
  
      }
  
      @Override
      public void onSensorChanged(SensorEvent event) {
          if(event.sensor.getType() == Sensor.TYPE_LIGHT){
              textLIGHT_reading.setText(event.values[0]+" LUX");
          }
      }
  
  };
  </code></pre>
  
  <p>}</p>
  
  <p>I have tried solution in internet but it still closed</p>