我想在点击导航抽屉中的一个项目时添加点击事件,我使用了onNavigationItemSelected方法,但它不起作用,有帮助吗?
override fun onNavigationItemSelected(item: MenuItem): Boolean {
TODO("Not yet implemented")
val id = item.itemId
if (id == R.id.nav_signout) {
Toast.makeText(this, "Sign out", Toast.LENGTH_SHORT).show()
}
return true
}
drawer.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item android:title="Authentication">
<menu android:checkableBehavior="all">
<item
android:id="@+id/nav_signout"
android:icon="@drawable/ic_menu_gallery"
android:title="Sign out" />
</menu>
</item>
</group>
</menu>
由于您正在重写onNavigationItemSelected,我假设您将NavigationView.OnNavigationItemSelectedListener
直接实现到您的活动/片段中。
确保在创建时将其添加到导航中
navigation_view.setNavigationItemSelectedListener(this)
或者另一种选择是直接在导航中实现它,而不是活动/片段。删除您发布的代码和活动/片段实现,并使用类似的kotlin-lambdas
navigation_view.setNavigationItemSelectedListener{
TODO("Not yet implemented")
val id = item.itemId
if (id == R.id.nav_signout) {
Toast.makeText(this, "Sign out", Toast.LENGTH_SHORT).show()
}
return true
}