2016-04-16 8 views
1

In meinem Kotlin-Projekt für Android, bekomme ich eine Fehlermeldung, dass android.R.id.home ist undefiniert. In der Zwischenzeit habe ich den minimalen Android-SDK auf 14 festgelegt. Ich benutze Kotlin '1.0.1-2'.Warum findet der Compiler die Konstante android.R.id.home nicht?

Hier ein Auszug aus dem Code ist, die es braucht (es ist eine Aktivität, eine Ebene ein, kein AppCompatAcitivity)

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

Hier wird der Fehler:

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

Antwort

6

Du bist Verwendung is Operator für die Prüfung der Gleichheit, während es eine Art Check-Operator ist (wie instanceof). Es sollte funktionieren, wenn Sie nur entfernen is:

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

Aus irgendeinem Grund funktioniert es nicht. Lustig ist: Es hat gestern funktioniert ... – kristyna

Verwandte Themen