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コンポーネントを追加するときに識別するためのレイアウトファイルコードは以下の通りです。
図1コンポーネントを動的に追加する-Linear Layout
(2)レイアウトを動的に追加:
*下の例では、どうやってレイアウトを動的に追加するかを紹介します。基本的な内容は上のコードと一致しています。
*レイアウトの位置を制御する際に、LayoutParam類を使用して実現します。
*注意:位置やスタイルを制御する場合、レイアウトとコントロールの使い方は同じです。
*/今回はMainActivityでのみ動作します。レイアウトファイル(.xml)には関係ありません。コードは以下の通りです。
図2レイアウトを動的に追加する-RelativeLayout
上の紹介をマスターしたら、簡単にインタフェースのレイアウトができます。ボタンでも他のコンポーネントでもレイアウトに対して便利にレイアウト使用できます。以上は安卓の中でどのようにコンポーネントを動的に追加する方法です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
この中で追加されたレイアウトは主に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
上の紹介をマスターしたら、簡単にインタフェースのレイアウトができます。ボタンでも他のコンポーネントでもレイアウトに対して便利にレイアウト使用できます。以上は安卓の中でどのようにコンポーネントを動的に追加する方法です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。