Erstellen, Speichern und Aufblasen eines benutzerdefinierten Layouts in Runtime

8

Ich versuche eine Lösung für das folgende Problem zu finden. Die Anwendung, an der ich arbeite, erfordert eine Möglichkeit für den Benutzer, benutzerdefinierte Benutzeroberflächen (Layout von einfachen Widgets) über den benutzerdefinierten UI-Builder zu erstellen. So kann der Benutzer Widgets (meist Bilder, aber auch TextViews und EditText) auf Leinwand stapeln, verschieben, verschieben usw. UI muss für zukünftige Verwendung in einer Datenbank gespeichert werden. Daher sollte es einen Mechanismus zum Laden und Aufblasen dieser Benutzeroberfläche geben. Das ist das Hauptproblem.

Meine erste Idee war, mich auf den Standard-Android-Layout-Mechanismus zu verlassen. Leider arbeitet der LayoutInflate mit XML, kompiliert in eine binäre Form. Und soweit ich weiß, ist es nicht möglich, in Runtime eine XML-Zeichenfolge in eine Binärdarstellung zu übersetzen.

Hat jemand Erfahrung mit einem solchen Problem? Irgendwelche Vorschläge?

    
Anton 05.04.2011, 14:48
quelle

1 Antwort

2

Sehen Sie sich die Aufblasmethoden von LayoutInflater an. Sie können ihm tatsächlich XmlPullParser als Quelle geben, die wiederum mit Reader erstellt werden kann.

Mit anderen Worten, Sie können fast jeden Zeichenstrom als Ihre xml-Quelle zum Aufblasen verwenden.

Am Anfang der XmlPullParser Dokumentation finden Sie die grundlegenden Informationen zum Erstellen des Pulls Parser:

%Vor%

Aktualisieren - das wird nicht funktionieren, wie in LayoutInflater docs erwähnt.

    
Matthew Willis 05.04.2011 14:53
quelle