Hauptview abfragen und an eine Methode übergeben

T

tobbbbi

Neues Mitglied
3
Hallo!

Ich habe mal wieder eine Frage, die sicherlich leicht zu beantworten ist. Aber ich komme einfach nicht auf die Lösung.

Es geht um folgendes einfaches Szernario: Von meiner Hauptklasse aus in der die contenView gesetzt wurde, möchte ich eine Instanz einer anderen Klasse erzeugen und dabei dem Konstruktor die eigene HauptView mitgeben.

Jetzt weiß ich nicht, wie ich an die Referenz zur eigenen View herankomme.
In den OnClick Methoden zB. eines Buttons wird ja die View übergeben, zB.:
Code:
public void onClickStartButton(final View myView)
    { 
      MyClass mine = new MyClass(myView); 
     ... }
In meinem Fall möchte ich aber aus einem OptionsMenu heraus eine neue Klasse erzeugen und die View übergeben:

Code:
public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId()) {
        
        case MENU_CONNECT:
          Connect(myView);
        break;
        
        case MENU_SEND:
        SendData(data);
        break;
        }
        return true;
    }
Vielleicht fragt ihr euch jetzt, wieso ich in der anderen Klasse eine Referenz auf die View brauche. Ich möchte ganz einfach auf Funktionen der Klasse mit einem Toast reagieren, zB. so:
Code:
Toast t = Toast.makeText(myView.getContext(), data + " wurde gesendet.", Toast.LENGTH_LONG );
  t.show();


Könnt ihr mir also bitte sagen, wie ich an die Viewreferenz komme?

Danke und Gruß
Tobias
 
Das BasisUI-Element ist die Activity, diese ist selbst kein View, aber jedoch ein Context. Um diesen scheint es dir ja zu gehen.
Also übergib doch direkt die Activity als Context und nicht erst eine View:

...
case MENU_CONNECT:
Connect(this);
break;
...

;)
 
Genial! Danke. :)

Was mich dabei noch interessieren würde:
Code:
myView.getContext()

Bei myView handelt es sich ja um eine View und von dieser hole ich mir dann die Activity (Context). Wo liegt der Unterschied zwischen dieser View und der Activity? Wie kann ich mir das vorstellen. Ist die View eine Art Panel oder Frame in der alle anderen Views platziert werden?


PeaceI schrieb:
Das BasisUI-Element ist die Activity, diese ist selbst kein View, aber jedoch ein Context. Um diesen scheint es dir ja zu gehen.
Also übergib doch direkt die Activity als Context und nicht erst eine View:

...
case MENU_CONNECT:
Connect(this);
break;
...

;)
 
Die Activity ist die Einstiegsklasse für deine App und sogesehen die "Schnittstelle" zum System. Im Prinzip kannst du sie dir als dein "Fenster das aufgeht" vorstellen. Dein "Gui-Baum" muss dann natürlich hierdran gesetzt werden.
Ein View ist ein Gui-Element, das weitere Elemente beinhalten kann (Panel trifft es hier schon ganz gut, z.B. LinearLayout) oder direkt für den User nutzbar ist (z.B. Button).
 

Ähnliche Themen

H
Antworten
2
Aufrufe
1.302
Hcman
H
B
Antworten
3
Aufrufe
1.299
swa00
swa00
M
Antworten
8
Aufrufe
952
deek
D
Zurück
Oben Unten