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

lol*_*f64 1 android kotlin

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

以下是需要它的代码的摘录(它是一个Activity,一个普通的,而不是AppCompatAcitivity)

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

这是错误:

e: $<path_start_from_my_disc>/AboutActivity.kt: (70, 29): Unresolved reference: home
Run Code Online (Sandbox Code Playgroud)

And*_*dEx 10

您使用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)
}
Run Code Online (Sandbox Code Playgroud)