I add to my app Bottom Navigation Bar it work fine but I try to make one item or one button hide with if condition I try to do it but didn't work.
I need make it if if(block.equals("3")) so I will see all Bottom Navigation Bar .. but If it equals any other number there are one button will be hide and I will can see other buttons.
This button I need it hide case R.id.nav_s: selectedFragment = new MainActivity();
I try like that but not work case R.id.nav_s: new MainActivity().setMenuVisibility(false);
This is my code:
public class NafMaintest extends AppCompatActivity {
String block;
SessionManager sessionManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_naf_main);
sessionManager = new SessionManager(this);
sessionManager.checkLogin();
HashMap<String, String> user = sessionManager.getUserDetail();
block = user.get(sessionManager.blook);
BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation);
if(block.equals("3")){
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
selectedFragment = new MainActivity();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
// return false;
}
});
}else {
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
new MainActivity().setMenuVisibility(false);//this is I need make it hide if block not equals("3")
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
}
});
}
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new FragmentFavorites()).commit();
}
}
}
Anyone know the solution help me
To add items to NavigationView
menu use bottomNavigationView.getMenu().add()
, and to remove items use bottomNavigationView.getMenu().removeItem()
To apply that in your code:
public class NafMaintest extends AppCompatActivity {
String block;
SessionManager sessionManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_naf_main);
sessionManager = new SessionManager(this);
sessionManager.checkLogin();
HashMap<String, String> user = sessionManager.getUserDetail();
block = user.get(sessionManager.blook);
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
break;
case R.id.nav_favorites:
selectedFragment = new FragmentFavorites();
break;
case R.id.nav_search:
selectedFragment = new FragmentSearch();
break;
case R.id.nav_s:
selectedFragment = new MainActivity();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
// return false;
}
});
if(block.equals("3")){
if (bottomNavigationView.getMenu().findItem(R.id.nav_s) == null)
bottomNavigationView.getMenu().add(0, R.id.nav_s, 2, "Title"); // 2 is item order in the menu
}else {
if (bottomNavigationView.getMenu().findItem(R.id.nav_s) != null)
bottomNavigationView.getMenu().removeItem(R.id.nav_s);
}
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new FragmentFavorites()).commit();
}
}
}