AndroidはaddViewを使用して、動的にコンポーネントを追加する方法です。


プロジェクト開発において、私たちは常に動的にコンポーネントを追加する必要があります。この中に追加できる部分は二つあります。レイアウトとコンポーネントです。 
この中で追加されたレイアウトは主にRelativeLayout型とLinear Layout型があります。
追加したコンポーネントは主にテキスト表示枠、編集枠、ボタンなどのコンポーネントがあります。 
以下、私達に実現させます。
まず、新しいプロジェクトを作成して、MainActivity.classにないコードを削除して、protected void onCreate関数だけを残して、レイアウトファイルに新しいコンポーネントを追加します。
1.addView方法概要 
Androidでは、addViewは指定されたindexにviewを追加します。レイアウトViewのaddView関数を利用して、動的に生成されたViewオブジェクトをレイアウトViewに追加することができます。
 2、例:
(1)まずレイアウトファイルにテキスト、ボタンのようなコンポーネントを追加します。レイアウトファイルにレイアウト項目<Linear Layout>を追加して、そのIDをlineary auと定義します。1コンポーネントを追加するときに識別するためのレイアウトファイルコードは以下の通りです。  

 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="        " 
  android:id="@+id/textview"/>
 <LinearLayout 
  android:layout_below="@+id/textview"
  android:id="@+id/linearlay_1"
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:orientation="vertical"
  >

</LinearLayout> 

次にActivity類にコンポーネントを追加します。コードは以下の通りです。 

   /**
  *    ,     ,              Linerlayout orientation    
  * vertical ,      ,       View      。   View    
  *       ,     (  :Linearlayout RelativeLayout ,  RelativeLayout      )
 
  *  ,  LinearLayout    ,            !         。 
 
  */
 
public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 //  activity_main         ,  R.id.lenearlay_1         id
 LinearLayout linear=(LinearLayout) findViewById(R.id.linearlay_1);
 //    ,this      
 TextView tv=new TextView(this);
 tv.setText("     ");
 tv.setId(1);//  ID,    ,    R        ,              
 linear.addView(tv);
 
  //  Button    LinearLayout  
  Button b1 = new Button(this);
  b1.setText("  ");
  linear. addView ( b1 );
 
  //  Button 2    LinearLayout  
  Button b2 = new Button(this);
  b2.setText("  ");
  linear. addView ( b2 );
 
  //  LinearLayout    Button 1
  // linear. removeView ( b1 );

  
 }

} 

効果は下図の通りです。
 
図1コンポーネントを動的に追加する-Linear Layout 
 (2)レイアウトを動的に追加: 
*下の例では、どうやってレイアウトを動的に追加するかを紹介します。基本的な内容は上のコードと一致しています。
*レイアウトの位置を制御する際に、LayoutParam類を使用して実現します。
*注意:位置やスタイルを制御する場合、レイアウトとコントロールの使い方は同じです。
 */今回はMainActivityでのみ動作します。レイアウトファイル(.xml)には関係ありません。コードは以下の通りです。

 public class MainActivity extends Activity {

 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
  //////////////////////////////////////
  //        relative
 RelativeLayout relative = new RelativeLayout(this);
 relative.setBackgroundColor(Color.YELLOW);
 //  Button1    RelativeLayout  
  Button btn_r1 = new Button(this);
  btn_r1.setText("  ");//       
  btn_r1.setId(24);
  relative.addView(btn_r1);
  
  //  Button2    RelativeLayout  
  Button btn_r2 = new Button(this);
  btn_r2.setText("  ");//         
  btn_r2.setId(25);
  relative.addView(btn_r2); 
  //   RelativeLayout      
   RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
   lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE); 
   lp.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE); 
   btn_r1.setLayoutParams(lp); ////          
   lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
   lp.addRule(RelativeLayout.RIGHT_OF, btn_r1.getId()); 
   btn_r2.setLayoutParams(lp); ////          
   setContentView(relative);
 }

} 

効果は以下の通りです。
 
図2レイアウトを動的に追加する-RelativeLayout
 上の紹介をマスターしたら、簡単にインタフェースのレイアウトができます。ボタンでも他のコンポーネントでもレイアウトに対して便利にレイアウト使用できます。以上は安卓の中でどのようにコンポーネントを動的に追加する方法です。 
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。