2010-04-05 5 views
5

Ich versuche, eine Bibliothek zu schreiben, die als JAR-Datei freigegeben werden kann. Diese Bibliothek enthält eine Aktivität und ich möchte das Layout in die JAR aufnehmen. Da es anscheinend nicht möglich ist, Ressourcendateien in ein JAR zu integrieren, und ich möchte nicht, dass die Endbenutzer diese Dateien selbst einbeziehen müssen, dachte ich, es wäre ein netter Hack, das XML als String aufzunehmen und dann manuell aufzublasen es. Weiß jemand, ob das möglich ist? Irgendwelche anderen Ideen?Einschließlich Android-Aktivitäten (und ihre Layouts) in JAR-Dateien

Antwort

3

Native Layout-XML-Dateien werden in eine binäre Form konvertiert und enthalten zur Build-Zeit gebackene Ressourcen-IDs.

Da jedoch alle GUI-Elemente zur Laufzeit instanziiert werden können, könnten Sie wahrscheinlich Ihren eigenen Inflater mit einem XML-Parser und ein wenig Reflektion rollen.

In Ihrem Fall kann es einfacher sein, die Aktivitätsansicht nur programmatisch zu erstellen.

+0

Basierend auf meiner Forschung seit dem Stellen der Fragen, das ist die Schlussfolgerung, zu der ich auch kam (die Ansichten programmatisch aufbauend). Ich hoffe immer noch auf eine bessere Lösung;) –

+2

Es gibt zwei Ebenen von "bessere Lösung". Im Moment stecken Sie entweder fest oder versenden die Layoutdatei, die der Wiederverwender kopieren muss, oder Sie müssen Ressourcen ganz vermeiden. Ich arbeite an einem wiederverwendbaren Komponenten-Verpackungssystem, das dabei helfen wird, aber es ist momentan ein oder zwei Monate vor der Veröffentlichung. – CommonsWare

+1

Es wäre schön, wenn es etwas gäbe, das das XML-Layout in Java-Quelle "kompilieren" würde. –

Verwandte Themen