Android XMLレイアウトファイルを取得して、同等のJavaコードを自動的に生成するための最良の方法は何ですか?JAXBのようなツールは機能しますか?機能する場合、どのように使用しますか?
2 に答える
少し役に立たない私見ですが、それは興味深いアイデアです。なぜそれをしたいのですか?XML のインフレートは非常に高速な操作であり、多くの複雑さを隠します。たとえば、現在の DisplayMetrics を考慮し、画面の密度とサイズに合わせてレイアウト パラメータ (幅/高さ) を適切に再計算します。また、非常に高速です。実際には XML 解析を必要としないため、解析はコンパイル時に行われ、Android によって実際に保存されるのは、効率のために最適化されたレイアウトのバイナリ バージョンです (そのため、XML ファイルからレイアウト XML を動的に構築することはできません)。
Java コードを変更し、いくつかの要素を追加/削除したい場合は、XML をインフレートしてからすべての変更を行う方がはるかに効率的です。煩雑さがなくなり、コードが単純になり、すべての計算が自動的に行われます...
Android XML レイアウト ファイルを取得し、同等の Java コードを自動的に生成する最良の方法は何ですか?
ステップ #1: XML を解析します。
ステップ #2: Java コードを生成します。AttributeSet
生成されたコードで動作する独自の実装を構築できることを祈る必要があります。そうしないと、これは非常に複雑な問題になります。
JAXB のようなツールは機能しますか
私の知る限り、JAXB には XML スキーマが必要ですが、Android レイアウト ファイルにはそのようなスキーマはありません。
この方法で解決しようとしている問題が何であれ、おそらくもっと良い解決策があります。
Android xml レイアウトを取得し、それをコマンド ライン ツールに渡して、同等の Java を生成する簡単な方法が必要なだけです。
用語の合理的な定義にとって、これが「単純」になるとは思えません。