URL: https://www.overclockers.at/coding-stuff/android-inflate-view-from-xml_230402/page_1 - zur Vollversion wechseln!
Hey Ihrs!
Ich habe hier ein mehr oder weniger schweres Problem, an welchem ich schon einige Stunden sitze und einfach nicht weiterkomme.
Hoffe von euch hat da wer eine Idee
Problem ist folgendes:
Ich habe ein Framework für Android, welches externe Plugins (eigenständige Programme, welches das Framework nutzen) während der Programmlaufzeit läd.
Die Plugins werden an dieser Stelle per dex (die Class-files) als zip gepackt.
Ich möchte nun, dass wenn ich im Framework das Plugin starte, die view vom Plugin verwendet wird.
Das geht auch, aber nur wenn die GUI in Java gecodet ist.
Per xml habe ich es noch nicht hinbekommen.
Die Startklasse von einem Plugin schaut zum Beispiel so aus:
Code:public class Start extends ClientService { @Override public void executeService() { System.out.println("Checkpoint 1"); LayoutInflater inf = (LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE); View v = inf.inflate(R.layout.main, null); // Verzweifelter Versuch, die View irgendwie zum Vorschein zu bringen... v.setVisibility(View.VISIBLE); v.bringToFront(); ((ViewGroup) super.getView()).removeAllViews(); ((ViewGroup) super.getView()).addView(v); System.out.println("Checkpoint 2"); } @Override public void stopService() { // TODO Auto-generated method stub } }
Falls mal wer das gleiche Problem haben sollte: Es ist wohl leider nicht möglich.
Ich habe das inflate geschafft, jedoch muss die xml im layout-Ordner des Frameworks liegen (da die Methode automatisch nur dort nachschaut), was bei Plugins nicht praktikabel ist (da man für jedes Plugin das Framework anpassen muss, auch wenn es nur copy/paste einer xml-Datei ist).
Laut der docu kann man bei der inflate-Methode jedoch keinen externen Pfad angeben und somit fällt diese Möglichkeit flach.
Ob es einen komplett anderen Weg gibt, weiß ich an dieser Stelle nicht - ich will es mal nicht ausschließen.
Dafür gibts eigentlich Android Library Projekte - oder nicht?
Ich bin mir nicht sicher, was du meinst.
Library Projects haben ja den Vorteil, dass man auf Resourcen zugreifen kann.
Die Plugins sind aber keine normalen apk Dateien, sondern eine per Hand generierte zip (adb dex), in der sind auch nicht die xml-Dateien vorhanden.
Oder hab ich dich da irgendwie falsch verstanden?
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025