package com.tecent.bottomnavigationviewexample; import android.support.annotation.NonNull; import android.support.design.widget.BottomNavigationView; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MenuItem; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation_view); bottomNav.setOnNavigationItemSelectedListener(navListener); //I added this if statement to keep the selected fragment when rotating the device if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new HomeFragment()).commit(); } } private BottomNavigationView.OnNavigationItemSelectedListener navListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { Fragment selectedFragment = null; switch (item.getItemId()) { case R.id.nav_home: selectedFragment = new HomeFragment(); break; case R.id.nav_dashboard: selectedFragment = new DashBoardFragment(); break; case R.id.nav_test_series: selectedFragment = new TestSeriesFragment(); break; case R.id.nav_doubt: selectedFragment = new DoubtsFragment(); break; } getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit(); return true; } }; }