Kotlin中的方法应返回一个布尔值

时间:2018-08-26 13:02:59

标签: kotlin

当我按下称为“主页”的导航项目时,我想显示主屏幕。我不能这样做,因为该方法应该返回一个布尔类型。

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)
    }
}

2 个答案:

答案 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
}