Androidダイナミックロードレイアウトファイル

2792 ワード

本文転自:原文アドレス
Androidの基本UIインタフェースは一般的にxmlファイルで定義され、activityのsetContentViewでインタフェースに表示されます.これはAndroid UIの最も簡単な構築方法です.実際には、より複雑で柔軟なUIインタフェースを実現するために、ユーザのクリックまたは構成に基づいてUIを動的に変更する必要がある場合が多いが、本稿では、このテクニックを紹介する.
Androidエンジニアリングのxmlファイル名をactivityと仮定します.main.xml、定義は次のとおりです.

    

MainActivityでは、この簡単なインタフェースを表示するには3つの方法があります(注:次のコードはすべてMainActivityのonCreate()関数で実現されます).
(1)第1の方法は、従来のsetContentView(R.layout.*)によって直接ロードされる.
setContentView(R.layout.activity_main);
                                                            
TextView text = (TextView)this.findViewById(R.id.DynamicText);
text.setText("Hello World");

(2)第2の方式はLayoutInflaterによる間接負荷
次のようになります.
LayoutInflater mInflater = LayoutInflater.from(this);     
View contentView  = mInflater.inflate(R.layout.activity_main,null);
                                                                                                            
TextView text = (TextView)contentView.findViewById(R.id.DynamicText);
text.setText("Hello World");
                                               
setContentView(contentView);

注意:
LayoutInflaterは「レイアウト・ローダ」に相当し、システムからレイアウト・ローダ・オブジェクトを取得するには、次の3つの方法があります.
方法一:LayoutInflater.from(this);
方法2:(LayoutInflater)this.getSystemService(this.LAYOUT_INFLATER_SERVICE);
方法3:this.getLayoutInflater();
このオブジェクトのinflateメソッドを使用すると、指定したxmlファイルのロードを、コントロールのオブジェクトであるビュークラスオブジェクトに変換できます.このビューオブジェクトのfindView ByIdメソッドで取得できます.
(3)UIインタフェースを純粋に手作業で作成する第3の方法
xmlファイルのラベルには、対応するクラスが定義されています.したがって、xmlファイルを使用せずに、必要なUIインタフェースを純粋に動的に作成することができます.例は次のとおりです.
LinearLayout layout = new LinearLayout(this);
                                                                                                       
TextView text = new TextView(this);
text.setText("Hello World");
text.setLayoutParams(new    ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
                                                                                                       
layout.addView(text);
                                                                                                       
setContentView(layout);

AndroidダイナミックUI作成のテクニックはここまでですが、この例では、分かりやすくするために最も簡単な例を採用しているので、ダイナミックUI作成のメリットや用途は見えないかもしれませんが、大丈夫です.まず基本的なテクニックを身につけておきます.後の文章では、これらの技術を徐々に応用していきます.