12

セキュリティ上の理由からおそらく不可能だと思いますが、確認したいのですが、Androidで外部XMLファイルからレイアウトを作成することは可能ですか?

正確に言うと、リモート サーバーで XSL を使用して XML 出力を作成しています。必要なレイアウトをサーバー上で直接作成し、Android アプリにダウンロードすることができました。

4

5 に答える 5

5

それは無理だ。Android の XML レイアウトは XML として保存されません。パフォーマンス上の理由から、これらはコンパイル中に前処理され、バイナリ形式で保存されます。レイアウト インフレータは、xml ではなくバイナリ形式のみを認識します。

于 2011-07-04T22:16:47.467 に答える
3

もちろん、実行時にビューを動的に作成することもできますが、これが最善の解決策であるとは確信していません。Android の内部を見てみると、XML を介して作成されたすべての View は、 Context と - さらに興味深い - AttributeSetという 2 つのパラメーターを持つコンストラクターで呼び出されます。適切な形式を追跡しながら、解析に多くの作業があると思います。サーバーの出力に応じて、少なくとも値を設定し、Java で自分でビューを作成できます。

于 2011-07-04T21:44:21.407 に答える
0

それは可能ですが、単純なレイアウトのみをロードする方法を見つけました:

Resources resources=context.getPackageManager().getResourcesForApplication(targetPackage);
int resID = resources.getIdentifier("widget_layout" , "layout", TARGET_PACKAGE);
XmlResourceParser parser = resources.getLayout(resID);
View themeLayout = LayoutInflater.from(this).inflate(parser, null);
于 2021-08-05T17:35:01.797 に答える
-1

おそらく、LayoutInflator の inflate 関数が機能します。

EDIT:まだ動作していないようです。

于 2011-07-04T22:03:21.220 に答える