Как выбрать меню программно - PullRequest
0 голосов
/ 13 июля 2020

Код

@Override
public boolean onNavigationItemSelected(MenuItem item) {

    int id = item.getItemId();
    Fragment fragment = null;

    if (mDatabase.getUserType().equals("Seller")) {
        if (id == R.id.home) {
            fragment = new Home_Seller();

        } else if (id == R.id.products) {
            fragment = new Products_Sellers();

        } else if (id == R.id.orders) {
            fragment = new Orders_Seller_Pending();

        } else if (id == R.id.delivery) {
            fragment = new About();

        } else if (id == R.id.earninga) {
            fragment = new Contact();

        } else if (id == R.id.contact) {
            fragment = new Contact();
        }
        if (fragment != null) {
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.mainFrame, fragment);
            ft.commit();
        }
    } else {
        if (id == R.id.home) {
            fragment = new Home_Delivery();
        } else if (id == R.id.contact) {
            fragment = new Contact();
        }else {
            Toast.makeText(getApplicationContext(),"You do not have permission to access this feature", Toast.LENGTH_LONG).show();
        }
    }

    DrawerLayout drawer = findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

Можно ли использовать 2 меню просмотра навигации для 2 ситуаций? Мне как-то нужно выбрать меню навигации в зависимости от типа пользователя, обращающегося к приложению. Я рассмотрел возможность использования двух разных родительских действий для самого навигационного ящика. Есть ли другое решение?

...