Fragment View Updaten

  • 5 Antworten
  • Letztes Antwortdatum
C

Chris-Pi

Neues Mitglied
0
Hallo zusammen,

beschäftige mich derzeit ein wenig mit Fragmenten und habe folgendes Problem:

Ich habe ein Fragment in einer Activity aufgebaut, über onCreateView übergebe ich das entsprechende XML File des Fragments.

Das XML File des Fragments enthält nur ein LinearLayout. Ich möchte diesem LinearLayout von meiner Activity aus ein weiteres XML hinzufügen.

Wie greife ich den auf das LinearLayout zu bzw. kann das ganze Layout um eine XML erweitern? Ist dies prinzipiell überhaupt möglich?

Folgender Versuch um auf das LinearLayout von der Activity zuzugreifen ist leider gescheitert.

PHP:
createMainFragment();
        LinearLayout ll = (LinearLayout) fragment.getView().findViewById(R.id.room_space);
 
layoutelemente vom fragment bekommst erstmals nur im fragment selber.

diese müsstest dann bereitstellen, aber aufpassen was zuerst ausgeführt wird.

aber ich glaube, dass du da einen kleinen denkfehler hast. müsstest mal beschreiben, was du erreichen willst.
 
Servus swordi,

danke schonmal das du dich der Sache annimmst.

Es geht um Folgendes:

Ich habe eine Activity die beim Start Daten über einen Async-Task lädt. Diese Daten möchte ich in einem Fragment darstellen. Dabei enthalten die Datensätze Informationen über verschiedene Räume (z.B. Informationen zu Küche, Wohnstube, etc.)

Ich möchte in dem Fragment also für jeden Raum so eine Art Box mit den Informationen darstellen. Das Layout für jede Box ist gleich, nur haben die Text Felder, Bilder etc. andere Werte.

Hast du diesbezüglich einen Tipp für mich, wie ich das am Besten angehe? Bin leider im Umgang mit Fragmenten noch völlig unerfahren.
 
naja du erzeugst beim start das fragment. dem fragment fügst eine methode hinzu, über welche du daten vom asynctask weiter gibst. dann kann das fragment mit den daten tun, was es will.
 
Wenn ich dich richtig verstehe, dann willst du einfach für jeden Raum zu dem es Daten gibt, eine Box hinzufügen, oder? Andersherum soll für Räume ohne Daten keine Box angezeigt werden?

Dann würde ich dem Layout via XML einfach alle theoretisch möglichen Boxen erstellen und diese über das android:visibility="gone" erstmal ausblenden. In deinem Fragment kannst du dann einfach checken ob Daten für den jeweiligen Raum (bzw. die Box) vorliegen und diese bei Bedarf mit .setVisibility(View.VISIBLE); anzeigen lassen.

Ist es das, was du meinst?
 
Hallo ihr beiden,

@swordi

Danke - das war mir in etwa auch soweit bewusst. Mir ging es dabei eher darum, die View des Fragments zu ändern. Diese wird ja in onCreateView festgelegt. Ich habe mir jetzt eine eigene View Klasse für meine Boxen geschrieben, diese übergebe ich an das Fragment und das onCreateView und erzeuge somit meine gewünschte Darstellung.

@RobNeck

Ja du hast Recht, so in etwa möchte ich das. Allerdings ist die Anzahl der Räume dynamisch und nicht fest vorgegeben, somit fällt deine Variante raus, oder sehe ich das falsch?


Eine allgemeine Frage noch:

Wie update ich den jetzt konkret die Darstellung eines Fragments? Ich setze die View ja in onCreateView() beim erstellen, aber kann ich auch während der Laufzeit die View eines Fragments durch eine Methode ändern? Oder muss ich das Fragment erneut aufrufen?

Danke an euch beiden!

Beste Grüße
 
Zurück
Oben Unten