Android 在版面配置容器中動態添加控制項,android控制項

來源:互聯網
上載者:User

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匯入了。
你貼一下報錯的我看看。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.