web-dev-qa-db-ja.com

Android-純粋なJavaでXMLなしのアプリを作成しますか?

JavaだけでAndroidアプリを作成できるかどうか疑問に思っています。XMLも他のものもありません。

Eclipseで、新しいAndroidプロジェクトを作成すると、マニフェストxmlファイルとメインレイアウトxmlファイルが自動的に生成されます。これらのファイルを削除してJavaファイルに置き換えることはできますか?

25
Van Coding

レイアウトには2つのオプションがあります

  1. XMLでUI要素を宣言します。 Androidは、ウィジェットやレイアウトなどのViewクラスとサブクラスに対応する簡単なXMLボキャブラリーを提供します。

  2. 実行時にレイアウト要素をインスタンス化します。アプリケーションは、プログラムでViewオブジェクトとViewGroupオブジェクトを作成(およびそれらのプロパティを操作)できます。

したがって、最初の質問(はい)では、xmlレイアウトファイルを削除できます(必要な場合)。

マニフェスト.xmlを取り除くことはできないと思います。引用:

すべてのアプリケーションのルートディレクトリにAndroidManifest.xmlファイル(正確にはその名前)が必要です。

14
hovanessyan

XMLを回避することは可能ですか?はい、マニフェストとおそらくいくつかのテーマ宣言を除いて(パブリックJavaテーマを介して設定できるすべてのものに相当するものがあるかどうかはわかりません)。

それは良い考えですか?天国、いや。

リソースシステムの背後にあるポイントは、永続的なデバイスの特性(画面密度など)と一時的なデバイスの両方に基づいて、現時点でデバイスに必要な適切なリソースをAndroidが透過的に提供できるようにすることです。特性(例:縦向きと横向き)。

リソースを回避するには、一連のifステートメントを実行して、実行するJavaコードのハンクを決定し、これらすべてを手動で検出する必要があります。これは大幅に向上します。 Android自体の変更を考慮すると、新しい構成の変更と値が追加されるため、より複雑になり、下位互換性のある方法で必要なすべてをサポートすることが困難になります。

途中で、プレーンJava編集とデバッグ以外のすべてのツールサポート(ドラッグアンドドロップGUIビルド、MOTODEV Studioの文字列リソースアシスタントなど)が失われます。

あなたは他のすべての考慮事項よりもあなた自身の個人的な技術的傾向を優先しているようです。これが小さな個人的なプロジェクトである場合、それは良い態度かもしれません。ただし、他の開発者が開発および/または保守するコードを作成する場合は、他の開発者のニーズを考慮する必要があり、XMLに対して自分よりもはるかにオープンである可能性があります。

5
CommonsWare

Android team: http://www.parleys.com/#st=5&id=2191&sl=8 によって投稿されたばかりのこのビデオを見てください

レイアウトがすべてであり、XMLではなくJavaを使用してアプリをレイアウトする方法が含まれています。ただし、AndroidチームがXMLの使用を求めている...

2
Todd Davies

コードからすべてのレイアウトファイルを作成することが可能です。ただし、レイアウトXMLファイルを使用することをお勧めします。

AndroidManifest.xmlシステムはこのファイルに含まれるデータに依存しているため、コードで置き換えることはできません。

1
keyboardsurfer

VanCodingに完全に同意します。適切なプログラミング言語があれば、AXMLよりもはるかに簡潔なレイアウト定義を記述できます。 AXMLレイアウトを置き換える方法のC#の例

ViewGroup Layout(ViewGroup layout, IList<View> contents) {
    if (contents != null)
        foreach (View v in contents)
            layout.AddView(v);

    return layout;
}
1
Miklos Nemeth