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

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

这里是错误:

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/

相关文章:

android - 检测用户是否实际以编程方式调用了号码

android - 为什么 android ndk 不能为多个平台编译?

java - 如何在android中使用TextWatcher进行查询?

kotlin - 在 Kotlin Android 中用于初始化 PointF 或 RectF 时,Float 原语神奇地变为 0

spring - 即使使用 noarg 插件,也没有使用 Kotlin 的 JPA 实体的默认构造函数

android - Chromecast Audio 停止了 HTML 5 Web Audio API

android - 如何使用chmod在android中更改文件的权限

swift - Kotlin 中有没有办法让接口(interface)拥有关联的类型契约?

android - 如何以编程方式打开 Android Wear 键盘?

java - 如何在 Recyclerview GridLayout 之间添加 Admob Ad