当我按下称为“主页”的导航项目时,我想显示主屏幕。我不能这样做,因为该方法应该返回一个布尔类型。
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.nav_home ->
// I want to display the home screen here
else ->
return super.onOptionsItemSelected(item)
}
}
答案 0 :(得分:2)
在Kotlin中,when
statement
将返回所选语句的值。
return when (item.itemId) {
R.id.nav_home ->
// your code
return true
else ->
return super.onOptionsItemSelected(item)
}
答案 1 :(得分:1)
您可以在return super.onOptionsItemSelected(item)
块后面放置when
行:
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.nav_home ->
// your code here
}
return super.onOptionsItemSelected(item)
}
确保在when
块中包含所有菜单项。
这样,您从方法中返回了Boolean
。
在您的问题中,您提到了导航项,因此,如果您在谈论导航抽屉,则应该实现onNavigationItemSelected()
而不是onOptionsItemSelected()
override fun onNavigationItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.miNavUsePassword ->
// your code here
}
return true
}