XML-Datei auslesen und entsprechende GUI dynamisch bauen

  • Antworten:6
Jan P.
  • Forum-Beiträge: 2

09.12.2012, 19:35:33 via Website

Hallo,

ich möchte aus einer XML-Datei, die ich von einem Server zur Laufzeit abhole, eine dynamische GUI, ebenfalls zur Laufzeit, zusammenbasteln.

die XML-Datei kann z.B. Elemente enthalten wie..

1<schaltflaeche ausrichtung="links" ziel="speicherort_weitere_xml_datei" />

... welches ich dann als entsprechenden Android-Button dynamisch zum Layout der aktuellen Activity hinzufügen möchte.

Gibt es da vllt. schon ein vernünftiges Tutorial?

Ich danke Euch!

Antworten
Jan P.
  • Forum-Beiträge: 2

10.12.2012, 20:58:12 via Website

Ja, das wäre natürlich der einfachste Weg...

...aber auf den Inhalt der XML-Datei habe ich leider keinen Einfluss :-/

Gibt es einen galanten Ansatz für das Parsen und umbauen?

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

10.12.2012, 21:22:23 via Website

XML Transformation macht man idealerweise mit XSLT, aber keine Ahnung, ob es da was für Android gibt, bzw. ob die gängigen Libraries da laufen.
Ansonsten kannst du auch mit den allseits beliebten Regular Expressions einen einfachen Parser bauen, der das spezielle XML Format in Android GUI-XML übersetzt.

— geändert am 10.12.2012, 21:24:23

Antworten
Max Müller
  • Forum-Beiträge: 4

11.12.2012, 19:49:44 via Website

Bevor du da Arbeit reinsteckst, schau dir den LayoutInflater lieber nochmal genauer an. Als ich das vor einiger Zeit probieren wollte, konnte der nur irgendwie "vorverarbeitete" XML-Dateien lesen, was eben bei den üblichen layout-XMLs beim compilieren der App geschieht.

Falls sich das nicht geändert hat, wirst du mit einer Plaintext-XML-Layout-Datei zur Laufzeit nichts anfangen können. Entweder du schaffst es, das Preprocessing auch zur Laufzeit durchzuführen, oder musst die GUI eben "per Hand" anhand der XML-Datei dynamisch zusammenbauen.

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

12.12.2012, 08:38:31 via Website

@Max Müller:
Tatsache. Das geht echt nicht.
http://stackoverflow.com/questions/11499775/android-dynamic-layout-and-code-from-web

Dann würde ich wohl einen XML Parser nehmen und im Code die entsprechenden GUI Komponenten erstellen und zum Layout zusammenbauen.

Antworten
Gelöschter Account
  • Forum-Beiträge: 281

12.12.2012, 13:11:40 via Website

Heisst das eigentlich, du musst bei jedem Zugriff auf die View, die da zusammengebaut wird, auf einen Server zugreifen? Ändert die sich so oft?

Antworten