我刚刚在Android studio 4.0中使用 "Activity Drawer活动模板 "创建了一个新项目。通过模板创建了一个主活动控制器和三个片段。应用程序在 "主页 "片段上启动。菜单项点击导航到不同的片段.我已经搜索了项目,找不到任何onNavigationItemSelected或其他监听器的实现。
菜单选择的处理在哪里?
下面是MainActivity.kt的代码。
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
val navView: NavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
appBarConfiguration = AppBarConfiguration(setOf(
R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow), drawerLayout)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.main, menu)
return true
}
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment)
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}
}
谢谢你
在顶部,你需要这样写
class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
一旦你这样写了,你应该能够覆盖掉 onNavigationItemSelected
职能。