1. pixelflicker, 20.09.2011 #1
    pixelflicker

    pixelflicker Threadstarter Junior Mitglied

    Hallo,

    ich steh grad total auf dem Schlauch. Obwohl es etwas selbstvertändliches ist komme ich nicht drauf, vielleicht kann mich jemand drauf schubsen.

    Wenn ich eine zweite Klasse erstelle und innerhalb einer View ein Objekt anlege ( MeineKlasse objekt = new MeineKlasse() ) dann habe ich ja das objekt. Wenn ich nun aus diesem objekt heraus eine Methode in der View aufrufen will, wie geht das? Ich weiß ja den Objektnamen der View nicht, oder?

    Also ich habe z.B. in der View eine Methode setText(). Wie kann ich die dann aus der zweiten Klasse heraus aufrufen?
     
  2. Tom299, 20.09.2011 #2
    Tom299

    Tom299 Android-Experte

    hmm, so richtig kapier ich zwar nicht was du meinst, aber wenn du in deiner X-ten klasse eine methode von Y aufrufen willst, brauchst du eine referenz auf Y, es sei denn, es ist ne statische methode. also die referenz der view in deinem konstruktor der 2. klasse mitgeben, dann sollte es doch passen, oder?
     
  3. pixelflicker, 20.09.2011 #3
    pixelflicker

    pixelflicker Threadstarter Junior Mitglied

    Die Referenz. Klar.
    Das wars.

    Danke, den Schubs hab ich gebraucht.
     
  4. maniac103, 20.09.2011 #4
    maniac103

    maniac103 Android-Lexikon

    Wenn es ein inneres, nicht-statisches Objekt ist, solltest du doch die Methoden der äußeren Klasse genauso aufrufen können, als wenn sie zur inneren Klasse gehören, d.h. einfach setText("foo"), oder?

    Sent from my MB525 using Tapatalk
     
  5. pixelflicker, 20.09.2011 #5
    pixelflicker

    pixelflicker Threadstarter Junior Mitglied

    Es ist ja keine Abgeleitete Klasse. Ich hab nur nicht dran gedacht, dass ich ja einfach einen Link mitgeben kann. Ich mag einfach nur eine Methode aus der Activity-Klasse aus einer anderen Klasse heraus ansprechen.

    Direkt ansprechen mit einem Objektnamen kann man das Objekt der Activity wohl nicht, oder?
     
  6. maniac103, 21.09.2011 #6
    maniac103

    maniac103 Android-Lexikon

    Es muss ja auch keine abgeleitete Klasse sein. Sowas hier sollte funktionieren:
    Code:
    public class Foo {
        public Foo() {
        }
        private void method() {
        }
    
        private class Bar {
            public Bar() {
                method();
            }
        }
    }
    
     
  7. pixelflicker, 21.09.2011 #7
    pixelflicker

    pixelflicker Threadstarter Junior Mitglied

    Achso, nein, ich wollte es ja als seperate Klasse haben, weil ich es auslagen möchte. Also eher so:

    Activity A:
    Code:
    public class ActivityA extends Activity {
      public void methodeA() {
        System.out.println("sag was");
      }
    
      KlasseB aufruf = new KlasseB();
    }
    
    Klasse B:
    Code:
    public class KlasseB {
      // Aufruf von MethodeA in Klasse A
    }
    
     
  8. Neeldarax, 21.09.2011 #8
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Hallo pixelflicker,

    Activity A:
    Code:
    public class ActivityA extends Activity {
      public void methodeA() {
        System.out.println("sag was");
      }
    
      KlasseB aufruf = new KlasseB(this);
    }
    
    Klasse B:
    Code:
    public class KlasseB {
       ActivityA actiA;
    
       public KlasseB(ActivityA actiA){
       this.actiA=actiA;
       }
      // Aufruf von MethodeA in Klasse A
      // actiA.methodeA();
    }
    
    So sollte es mit Parameterübergabe gehen.
    Aber Activity übergeben würd ich zwei Mal überlegen. Nur manchmal lässt es sich nicht vermeiden.

    Vllt. kannste auch nach Callbacks googlen, ist auch ne gute Möglichkeit!

    regards
     
    Zuletzt bearbeitet: 21.09.2011
  9. pixelflicker, 21.09.2011 #9
    pixelflicker

    pixelflicker Threadstarter Junior Mitglied

    Aber wie soll ich sonst ohne Referenz auf Elemente (z.B. Textfelder) innerhalb der Activity zugreifen können?
     
  10. Tom299, 21.09.2011 #10
    Tom299

    Tom299 Android-Experte

    Hmmm, mußt du jetzt auf Methoden der anderen Klasse zugreifen oder willst du "nur" Eigenschaften von anderen Widgets setzen?

    Weil die Elemente kannst du dir ja immer mit findViewById(R.id.xxx) besorgen ...
     
  11. pixelflicker, 21.09.2011 #11
    pixelflicker

    pixelflicker Threadstarter Junior Mitglied

    Schön wäre es, wenn ich Beides könnte.
    Grundsätzlich gehts mir aber erstmal nur um die Widgets.
    findViewById bekomme ich aber nur, wenn ich die Klasse mit "extends Activity" anlege, oder?
     
  12. swordi, 21.09.2011 #12
    swordi

    swordi Gewerbliches Mitglied

    du musst ein activity object haben. woher ist egal.

    glaub du solltest zuerst java mal näher betrachten.
     
  13. pixelflicker, 21.09.2011 #13
    pixelflicker

    pixelflicker Threadstarter Junior Mitglied

    Mir fehlt einfach die Übung, das weiß ich schon.
     

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. android methode aufrufen

    ,
  2. View aufrufen

    ,
  3. android funktion aufrufen

    ,
  4. android java funktion deklarieren