1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Funkion für mehrer Klassen ->Vererbung, static??

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von themed, 10.04.2011.

  1. themed, 10.04.2011 #1
    themed

    themed Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    02.03.2011
    Hallo Androiden...

    Ich hab ein Tablayout mit 3 Activities und meherern Sub-Activities.
    Ich möchte jetzt zum Beispiel das Menü und auch andere Funktionen für alle Klassen zur Verfügung stellen.

    da aber fast jede Activity bereits von (Listactivty, Activity) erbt, scheitert mein Plan mit dem vererben wohl...

    Auch das Stichwort static soll nicht untergehen. Hier hatte ich aber auch keinen Erfolg. Die Funktion onKeyDown (die ja den context der gerade aktiven Activity benötigt) wohl nicht statisch ansprechen kann...

    Gebt mir mal einen Denkanstoß, wie Ihr Funktionen für alle Klassen zur Verfügung stellt.

    Vielen Dank
    med
     
  2. themerx, 10.04.2011 #2
    themerx

    themerx Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    0
    Registriert seit:
    09.02.2011
    Wenn es von einer Klasse nur ein Objekt geben soll, schau dir mal "Singleton Pattern" an. Das ist eine Klassenstruktur die ein Objekt von sich selbst trägt und überall verfügbar ist.

    Beispiel
    PHP:

    package com
    .puregame.utils;

    public class 
    Helper
    {
        
    // Instanz von sich selbst
        
    private static Helper instance null;
        
        
    // deine Member
        
    int xyz;
        
        public 
    Helper()
        {
        
    initialize();
        }
        
        private 
    void initialize()
        {
        
    // initialisierungen
        
    xyz 20;
        }
        
        
    // gibt dir die Instanz zurück
        
    public static Helper i()
        {
        if (
    instance == null)
        {
            
    instance = new Helper();
        }
        
        return 
    instance;
        }
        
        
    // Methoden die du brauchst
        
    public int getXYZ()
        {
        return 
    xyz;
        }
    }

    Jetzt kannst du von überall aus folgendes aufrufen
    PHP:
    Helper.i().getXYZ();

    // oder
    Helper tempHelper Helper.i();
    tempHelper.getXYZ();
    Das solltest du aber, wie gesagt, nur nutzen, wenn du davon auch nur eine Instanz hast.

    MFG t.
     
  3. Fr4gg0r, 10.04.2011 #3
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Oder einfach die Methoden direkt static machen.
     
  4. themerx, 10.04.2011 #4
    themerx

    themerx Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    0
    Registriert seit:
    09.02.2011
    geht natürlich auch, hat aber den nachteil, dass alle member die in dieser methode verarbeitet werden auch static sein müssen und alles was static ist, verbraucht mehr rechnenzeit.
     

Diese Seite empfehlen