Android 在版面配置容器中動態添加控制項,android控制項
這裡,通過一個小demo,就可以掌握在版面配置容器中動態添加控制項,以動態添加Button控制項為例,添加其他控制項同樣道理。
1、addView
添加控制項到版面配置容器
2、removeView
在版面配置容器中刪掉已有的控制項
3、使用,來個小demo就明白了
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 產生一個LinearLayout,作為版面配置容器來動態添加3個Buttonfinal LinearLayout layout = new LinearLayout(this);layout.setOrientation(LinearLayout.VERTICAL);setContentView(layout);// 產生3個Buttonfinal 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() {@Overridepublic void onClick(View arg0) {layout.removeView(btn1);layout.addView(btn1);}});// 同btn1一樣道理btn2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {layout.removeView(btn2);layout.addView(btn2);}});// 同btn1一樣道理btn3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {layout.removeView(btn3);layout.addView(btn3);}});setContentView(layout);}}
4、
android開發 怎在相對布局中動態添加控制項
首先setMargin方法不是RelativeLayout的方法,而是RelativeLayout.LayoutParams的方法。
你應該這麼用:
RelativeLayout layout = new RelativeLayout(this);
layout.setLayoutParams(new RelativeLayout.LayoutParams(-1, -1));
TextView mView = new TextView(this);
mView.setId(2);
mView.setText("this is a test text!");
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
-2, -2);
// layoutParams.setMargins(100, 100, 100, 100);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, -1);
layout.addView(mView, layoutParams);
上例是將一個TextView添加到RelativeLayout的底部。你可以把注釋行取消掉,把下一行注釋,再看下效果。
android 添加子布局,安卓動態添加控制項
這樣肯定是可以的,你需要檢查下View.inflate()是否真的把XML匯入了。
你貼一下報錯的我看看。