funktionen der super-klasse von der super-klasse

Ginso89

Mitglied
Hallo,
mein Projekt enthält ein Klasse MyActivity, welche die KLasse Activity ableitet. und eine Klasse TestActivity welche MyActivity ableitet. Nun soll der Code in der OnCreate() von MyActivity in TestActivity nicht ausgeführt werden. Trotzdem muss natürlich der Code von Activity.OnCreate () ausgeführt werden.
Meine momentane Lösung sieht so aus:
Code:
public class MyActivity exends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ...
    }

    protected void onCreateSuper(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

Code:
public class TestActivity exends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreateSuper(savedInstanceState);
        // ...
    }
}

Funktioniert einwandfrei, allerdings finde ich das etwas unschön. Kann man in der TestActivity irgendwie Funktionen der Super-Super-Klasse aufrufen, ohne dass die Funktion der Superklasse aufgerufen wird?
 
Zuletzt bearbeitet:
Hm du redest ein wenig wirr und der Code passt auch nicht dazu...

Deine TestActivity leitet nicht von myActivity ab wie du schreibst sondern auch von Activity.
Was bedeutet der Code onCreate soll nicht ausgeführt werden, er muss aber trotzdem ausgeführt werden? Ja was denn nun...
 
Funktioniert einwandfrei, allerdings finde ich das etwas unschön. Kann man in der TestActivity irgendwie Funktionen der Super-Super-Klasse aufrufen, ohne dass die Funktion der Superklasse aufgerufen wird?
Nein, das ist mit gutem Grund nur über solche echt hässlichen Umwege möglich.

Wenn das nötig ist, ist das in den meisten Fällen ein Design-Fehler deinerseits.
 
oh ja, da ist mir wohl ein copy-paste fehler unterlaufen. TestActivity sollte MyActivity ableiten. Lässt sich jetzt auch nicht mehr bearbeiten. Ok, dann muss ichs halt so lassen
 
oh ja, da ist mir wohl ein copy-paste fehler unterlaufen. TestActivity sollte MyActivity ableiten. Lässt sich jetzt auch nicht mehr bearbeiten. Ok, dann muss ichs halt so lassen
Was willst du denn damit erreichen?
Es Klingt falsch, die Initialisierung von MainActivity zu überspringen, deine TestActivity ist ja dann nicht im passenden Zustand

Wenn das so bleiben muss: Schöner als der jetzige Weg wäre, die Initialisierung (abgesehen von super...()) aus der onCreate in eine eigene, protected, Methode auslagern, die TestActivity dann überschreiben kann, onCreate musst du dann in der auch nicht mehr anfassen.
 

Zurück
Oben