Methode aus View aufrufen

P

pixelflicker

Neues Mitglied
2
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?
 
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?
 
Die Referenz. Klar.
Das wars.

Danke, den Schubs hab ich gebraucht.
 
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
 
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?
 
pixelflicker schrieb:
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?

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();
        }
    }
}
 
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
}
 
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:
Aber wie soll ich sonst ohne Referenz auf Elemente (z.B. Textfelder) innerhalb der Activity zugreifen können?
 
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 ...
 
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?
 
du musst ein activity object haben. woher ist egal.

glaub du solltest zuerst java mal näher betrachten.
 
Mir fehlt einfach die Übung, das weiß ich schon.
 

Ähnliche Themen

Helmut1A
  • Helmut1A
Antworten
7
Aufrufe
1.125
Helmut1A
Helmut1A
R
  • Robby1950
2
Antworten
23
Aufrufe
1.005
Robby1950
R
B
Antworten
6
Aufrufe
1.049
jogimuc
J
Zurück
Oben Unten