为什么编译器找不到android.R.id.home常数



在我的android kotlin项目中,我收到一个错误,说是android。R.id.home未定义。同时,我正在修复的最低android sdk为14。我正在使用Kotlin‘1.0.1-2'。

以下是需要它的代码摘录(它是一个活动,一个简单的活动,而不是AppCompatAcitivity)

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    when (item.getItemId()){
        is android.R.id.home -> {
            NavUtils.navigateUpFromSameTask(this)
            return true
        }
    }
    return super.onOptionsItemSelected(item)
}

错误如下:

e: $<path_start_from_my_disc>/AboutActivity.kt: (70, 29): Unresolved reference: home

您使用is运算符进行相等性检查,而它是一个类型检查运算符(如instanceof)。如果您只删除is:,它应该会起作用

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    when (item.getItemId()){
        android.R.id.home -> {
            NavUtils.navigateUpFromSameTask(this)
            return true
        }
    }
    return super.onOptionsItemSelected(item)
}

最新更新