java - 抽屉菜单打开活动和片段
问题描述
现在我的一些菜单项只打开片段,我如何让它们也打开活动。目前我正在使用 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;
}
});
```
解决方案
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;
}
}
推荐阅读
- java - JPA 实体字段的默认值
- spring-boot - 如何在 Spring Boot 中将 Tomcat 绑定到域和端口
- mongodb - 如何获取上下文服务mongodb图集
- c# - Razor 类库图像显示在登录页面上,但未显示在任何其他页面上
- ruby - 在 Window 上的 VS Code 上找不到 Bash 命令
- css - 暗模式切换 - 两个按钮 - 只有一个有效
- python - 使用 for 循环和列表推导比较列表
- wordpress - WordPress 根目录 favicon 文件访问
- python - 我可以使用什么正则表达式来提取被特定字符包围的单词?
- android - 如何解决 Flutter RenderConstrainedBox 对象在布局期间被赋予无限大小