Reputation: 59
My bottom navigation view not working. When i click on items my fragment in not loading.
This is my activity for bottom navigation view
public static void enableNavigation(Context context, final BottomNavigationViewEx view, final FragmentManager supportFragmentManager){
view.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment;
switch (item.getItemId()){
case R.id.nav_home:
fragment = new FragmentMarker();
loadFragment(fragment);
return true;
case R.id.nav_bookmark:
fragment = new FragmentBookmark();
loadFragment(fragment);
return true;
case R.id.nav_blog:
fragment = new FragmentBlog();
loadFragment(fragment);
return true;
case R.id.nav_notification:
fragment = new FragmentNotification();
loadFragment(fragment);
return true;
}
return false;
}
private void loadFragment(Fragment fragment) {
FragmentTransaction transaction = fragment.getFragmentManager().beginTransaction();
transaction.replace(R.id.container, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
}
I`am using this library link
Upvotes: 0
Views: 1139
Reputation: 75778
The Java
break
is used to switch statement. It breaks the current flow of the program at specified condition.
You miss to add break;
.
DEMO STRUCTURE
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment = null;
switch (item.getItemId()) {
case R.id.nav_home:
fragment = FragmentMarker();
loadFragment(fragment);
break;
case R.id.nav_bookmark:
fragment = new FragmentBookmark();
loadFragment(fragment);
break;
}
.......
Upvotes: 0
Reputation: 2785
Try
Fragment fragment;
boolean valToReturn = false
switch (item.getItemId()){
case R.id.nav_home:
fragment = new FragmentMarker();
valToReturn = true;
break;
case R.id.nav_bookmark:
fragment = new FragmentBookmark();
valToReturn = true;
break;
case R.id.nav_blog:
fragment = new FragmentBlog();
valToReturn = true;
break;
case R.id.nav_notification:
fragment = new FragmentNotification();
valToReturn = true;
break;
}
loadFragment(fragment);
return valToReturn;
Upvotes: 1