override Fehler bei onActivityResult

  • Antworten:2
  • Bentwortet
Robbiani Renato
  • Forum-Beiträge: 615

09.04.2020, 15:51:57 via Website

Hallo zusammen

Ich erlerne zur Zeit Kotlin. Dazu habe ich ein Buch mit Beispielen. Bei einem Beispiel bleibe ich hängen.

package ch.robbisoft.activityuebergabe

import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val z = 42
    val x = 47.11
    val t = "Hallo Welt"
    val a:ArrayList<Int> = arrayListOf(12, -5, 2)

    tvHauptAusgabe.text = "Haupt-Activity:\n%d %.2f %s %s".format(z, x, t, a.joinToString(" "))

    buUnter.setOnClickListener {
        val unter = Intent(this, UnterActivity::class.java)
        unter.putExtra("zHaupt", z)
        unter.putExtra("xHaupt", x)
        unter.putExtra("tHaupt", t)
        unter.putExtra("aHaupt", a)
        startActivityForResult(unter, 1)
    }

    buUnterZwei.setOnClickListener {
        val unterzwei = Intent(this, UnterZweiActivity::class.java)
        startActivityForResult(unterzwei, 2)
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(requestCode == 1){
            if(resultCode == Activity.RESULT_OK && data != null){
                if(data.hasExtra("zUnterEins")){
                    val rueckgabe = data.getIntExtra("zUnterEins", 0)
                    tvRueckgabe.text = "Rückgabe aus Eins: %d".format(rueckgabe)
                }
            }else if(resultCode == Activity.RESULT_CANCELED){
                tvRueckgabe.text = "Keine Rückgabe aus Eins"
            }
        }else if(requestCode == 2){
            if(resultCode == Activity.RESULT_OK && data != null){
                if(data.hasExtra("zUnterZwei")){
                    val rueckgabe = data.getIntExtra("zUnterZwei", 0)
                    tvRueckgabe.text = "Rückgabe aus Zwei: %d".format(rueckgabe)
                }
            }else if(resultCode == Activity.RESULT_CANCELED){
                tvRueckgabe.text = "Keine Rückgae aus Zwei"
            }
        }
    }

}

}

Bei der Methode für die Antwort von den Activitiys hat es ein Problem. Das reservierte Wort override ist rot unterlegt und beim Kompilieren kommt folgender Fehler:

Modifier 'override' is not applicable to 'local function'

Wenn ich versuche mit Generit override funktion eine zu erstellen wird sie nicht angeboten. Ich habe alles abgetippt wie es im Buch steht und trotzdem funktioniert es nicht.

Sieht jemand wo der Fehler ist?

Gruss Renato

Kommentieren
Beste Antwort
Jokel
  • Forum-Beiträge: 1.537

09.04.2020, 18:25:27 via Website

Hallo du hast die onActivityResult Methode innerhalb der onCreate.
Das würde bei Java auch nicht gehen.

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 615

09.04.2020, 19:23:07 via Website

Ciao Jokel

Ja genau! so geht es. Dabei habe ich die schliessenden Klammern haargenau gezählt.
Danke für die Hilfe.

Gruss Renato

Hilfreich?
Kommentieren