這里,通過一個小demo,就可以掌握在布局容器中動態添加控件,以動態添加Button控件為例,添加其他控件同樣道理。
1、addView
添加控件到布局容器
2、removeView
在布局容器中刪掉已有的控件
3、使用,來個小demo就明白了
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 生成一個LinearLayout,作為布局容器來動態添加3個Button
final LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);
// 生成3個Button
final Button btn1 = new Button(this);
btn1.setText("1");
btn1.setText("Button1");
final Button btn2 = new Button(this);
btn2.setText("2");
btn2.setText("Button2");
final Button btn3 = new Button(this);
btn3.setText("3");
btn3.setText("Button3");
// 動態把三個Button添加到
layout.addView(btn1);
layout.addView(btn2);
layout.addView(btn3);
// 點擊按鈕時,先把原來在布局容器layout上的刪掉,再添加上局容器layout,這樣本次添加的控件就會排序到最后,以理解動態添加控件的思路
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
layout.removeView(btn1);
layout.addView(btn1);
}
});
// 同btn1一樣道理
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
layout.removeView(btn2);
layout.addView(btn2);
}
});
// 同btn1一樣道理
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
layout.removeView(btn3);
layout.addView(btn3);
}
});
setContentView(layout);
}
}
4、上圖


