首页 > 解决方案 > 抽屉菜单打开活动和片段

问题描述

现在我的一些菜单项只打开片段,我如何让它们也打开活动。目前我正在使用 Navigation Graph 中的 NavController 打开片段

MainActivity.java

   NavController navController = Navigation.findNavController(this, R.id.navHostFragment);
        NavigationUI.setupWithNavController(navigationView, navController);

        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {


                switch (menuItem.getItemId()) {
                    case R.id.menuLeave:
                        Toast.makeText(MainActivity.this, "adeus", Toast.LENGTH_SHORT).show();
                        break;
                    case R.id.menuAccount:

                        getSupportFragmentManager().beginTransaction()
                                .replace(R.id.navHostFragment, new ContaFragment())
                                .commit();
                        break;
                    case R.id.menuPrincipal:
                        getSupportFragmentManager().beginTransaction()
                                .replace(R.id.navHostFragment, new PrincipalFragment())
                                .commit();
                        break;
                }

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

            }
        });

```

标签: javaandroidnavigation-drawer

解决方案


1)您应该阅读此答案并按照这些步骤操作 https://stackoverflow.com/a/67389269/12660050

2)将意图设置为任何特定的菜单项。

public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {


            switch (menuItem.getItemId()) {
                //put your activity intent here
                Intent intent = new Intent(MainActivity.this,DestinationActivityName.class);
                startActivity(intent);
                    break;
              }
         }

推荐阅读