onNavigationItemSelected 不起作用?
onNavigationItemSelected not functioning?
我对 Android 编程还很陌生。我到处寻找答案,但我不认为我知道这个问题的根源。问题来了:
我今天在我的应用程序中添加了一个导航抽屉,我有 5 个不同的片段,我想在它们之间切换。除了最重要的事情外,一切都进行得很顺利:单击导航抽屉按钮时调用某些东西。
为了简单起见,导航抽屉现在只有两个按钮:主页和关于。
这是我的 onNavigationItemSelected :
override fun onNavigationItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.nav_home -> {
Toast.makeText(this, "Home clicked", Toast.LENGTH_SHORT).show()
}
R.id.nav_about -> {
Toast.makeText(this, "About clicked", Toast.LENGTH_SHORT).show()
}
}
binding.drawerLayout.closeDrawer(GravityCompat.START)
return true
}
如您所见,抽屉确实关闭了,但没有出现 Toast。我已经在 OnCreate 下面添加了这个:
navigationView.setNavigationItemSelectedListener(this)
所以我不知道到底发生了什么?!为什么执行 onNavigationItemSelected 而不是“when”表达式?!
没有错误,没有警告,没有崩溃,什么都没有。我点击了按钮,但什么也没有发生。
一直就在我眼前,这两个不能很好地配合:
navigationView.setupWithNavController(navController)
navigationView.setNavigationItemSelectedListener(this)
我删除了第一行并保留了第二行,现在片段的所有事务都在发生并且 onNavigationItemSelected 工作正常。
我对 Android 编程还很陌生。我到处寻找答案,但我不认为我知道这个问题的根源。问题来了:
我今天在我的应用程序中添加了一个导航抽屉,我有 5 个不同的片段,我想在它们之间切换。除了最重要的事情外,一切都进行得很顺利:单击导航抽屉按钮时调用某些东西。
为了简单起见,导航抽屉现在只有两个按钮:主页和关于。
这是我的 onNavigationItemSelected :
override fun onNavigationItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.nav_home -> {
Toast.makeText(this, "Home clicked", Toast.LENGTH_SHORT).show()
}
R.id.nav_about -> {
Toast.makeText(this, "About clicked", Toast.LENGTH_SHORT).show()
}
}
binding.drawerLayout.closeDrawer(GravityCompat.START)
return true
}
如您所见,抽屉确实关闭了,但没有出现 Toast。我已经在 OnCreate 下面添加了这个:
navigationView.setNavigationItemSelectedListener(this)
所以我不知道到底发生了什么?!为什么执行 onNavigationItemSelected 而不是“when”表达式?!
没有错误,没有警告,没有崩溃,什么都没有。我点击了按钮,但什么也没有发生。
一直就在我眼前,这两个不能很好地配合:
navigationView.setupWithNavController(navController)
navigationView.setNavigationItemSelectedListener(this)
我删除了第一行并保留了第二行,现在片段的所有事务都在发生并且 onNavigationItemSelected 工作正常。