1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. AquaBall, 09.03.2012 #1
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Ich steh gerade am Schlauch.
    Verzeiht die dumme Frage, aber ich blicks gerade echt nicht (heute Nacht nicht geschlafen).
    Code:
    class test{
      int testVariable;
      void main() {
        // alles Mögliche
      }
      void func1(){
      }
      void func2(){
      }
    }
    
    class drausen {
      int eineVariable;
      void method() {       
        eineVariable = testVariable;  // <- hier hackts
        func() //1 oder 2
      } 
    }
    
    Schaff ich es echt nicht diese beiden Variablen zusammen zu bringen?
    testVariable ist "drausen" nicht sichtbar,
    und class drausen darf ich nicht drinnen definieren, weil ich die Klasse brauche.
    Ist mir fast peinlich zu fragen, ob das irgendwie geht.


    Bitte keine Tips wie Parameterübergabe, weil um was wesentlich komplexeres geht (Interface als functionsÜbergabe.)
    Oder anders gefragt: (mein eigentliches Problem) Könnt ihr mit helfen, wie ich Func1 / Func2 an "drausen" übergeben kann?
    (Ich will in einem ListArray unterschiedliche Funktionen verknüpfen.)
     
  2. TheDarkRose, 09.03.2012 #2
    TheDarkRose

    TheDarkRose Gewerbliches Mitglied

    Ohne das du die Klasse instanzierst, geht schon mal gar nichts
     
  3. deek, 09.03.2012 #3
    deek

    deek Android-Experte

    Da ich gerade an einem Rechner ohne Eclipse sitze nur die light Version:

    -------
    Funktionsübergabe/Closures light für Java (da nicht vorhanden) per Interfaces:

    Code:
    public interface IFunction {
       void doSomething();
    
    }
    
    public class Foo {
       private ArrayList<IFunction> list; // instantiate in constructor   
    
       public void addFunction(IFunction param) {
          list.add(param);
       }
    
       public void doSomethingComplicated() {
          for (IFunction func : list) {
             func.doSomething();
          }
       }
    
    }
    
    
    public class FunctionGenerator {
       private Foo foo; // instantiate
    
       public void generateSomeFunctions() {
          IFunction func1 = new IFunction() {
             @Override
             public void doSomething() {
                // some calculation
             }
          }
          foo.addFunction(func1);
    
          IFunction func2 = new IFunction() {
             @Override
             public void doSomething() {
                // some other calculation
             }
          }
          foo.addFunction(func2);
       }
    
    }
    
    Prinzip klar? Du übergibst als deine Funktion immer ein Interface mit genau dieser Funktion die dann jeweils anders implementiert wird. Wenn noch Fragen sind einfach fragen.
     
    AquaBall gefällt das.
  4. AquaBall, 10.03.2012 #4
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Danke! Die Idee hab ich mehrfach gelesen, aber hab's nicht hingekriegt.
    Doch mit deiner Kurzanleitung ist mir jetzt perfekt gelungen.

    Kurz, kompakt, vollständig.
    So solls sein!
    Danke sehr.
     
  5. deek, 11.03.2012 #5
    deek

    deek Android-Experte

    Super, freut mich wenn ich helfen konnte.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung Freitag um 23:01 Uhr
[DISKUSSION] Reichen meine Java-Kenntnisse aus? Android App Entwicklung 03.06.2017
[ERLEDIGT] Eine Klasse um das aufrufen anderer Intents zu regeln Android App Entwicklung 24.05.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
[GELÖST] Übergabe an zweite Activity Android App Entwicklung 11.05.2017
[OFFEN] Unions wie in C, C++? Android App Entwicklung 08.05.2017
[GELÖST] Android PHP MySQL Android App Entwicklung 05.05.2017
[ERLEDIGT] Unable to locate tools.jar obwohl vorhanden Android App Entwicklung 23.03.2017
Anomalie bei Bitmap-Transfer übers Netzwerk Android App Entwicklung 21.11.2016
Du betrachtest das Thema "Java-Sichtbarkeit (gelöst)" im Forum "Android App Entwicklung",