在我的 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)
}
这里是错误:
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)
}
关于android - 为什么编译器找不到 android.R.id.home 常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36669606/