<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Android 利用addView 動態(tài)給Activity添加View組件

          Android 利用addView 動態(tài)給Activity添加View組件

          作者: 時間:2016-09-12 來源:網絡 收藏

          本文主要講述如何動態(tài)給UI界面添加布局和控件,在編程的時候很多時候需要動態(tài)顯示一些內容,在動態(tài)添加View的時候,主要使用方法。

          本文引用地址:http://www.ex-cimer.com/article/201609/303736.htm

          1. 方法簡介

          中,可以利用排版View的 函數(shù),將動態(tài)產生的View 物件加入到排版View 中。

          例子如下:

          Activity代碼:

          public class helloWorld extends Activity {

          public void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);

          setContentView( R.layout.main );

          // 取得LinearLayout 物件

          LinearLayout ll = (LinearLayout)findViewById(R.id.viewObj);

          // 將TextView 加入到LinearLayout 中

          TextView tv = new TextView(this);

          tv.setText(Hello World);

          ll. addView ( tv );

          // 將Button 1 加入到LinearLayout 中

          Button b1 = new Button(this);

          b1.setText(取消);

          ll. addView ( b1 );

          // 將Button 2 加入到LinearLayout 中

          Button b2 = new Button(this);

          b2.setText(確定);

          ll. addView ( b2 );

          // 從LinearLayout 中移除Button 1

          ll. removeView ( b1 );

          }

          }

          上述代碼的位置,是垂直順序排列的因為界面代碼Linerlayout的orientation設置的是vertical的,但是為了美觀,需要設置添加的View的位置和樣式。在添加View的時候分為兩類來介紹,一種是布局(例如:Linearlayout等),一種是控件(例如:Button,TextView等等。)

          2. 動態(tài)添加布局(包括樣式和位置)

          下面的例子將介紹如何動態(tài)添加布局,基本內容和上面的代碼一致,主要注重如何控制添加的布局的位置。在控制布局的位置的時候使用LayoutParam類來實現(xiàn)。

          例子:

          界面代碼和上面的界面代碼類似,就不在重復介紹。

          Activity類部分代碼:

          RelativeLayout rl = new RelativeLayout(this);

          //設置RelativeLayout布局的寬高

          RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

          this.addView(rl, relLayoutParams);

          3. 動態(tài)添加控件

          動態(tài)添加控件和添加布局很相似,下述代碼主要注重看控制控件的位置,下面的代碼和第二項添加布局的補充,在新添加的布局里面再添加控件。

          界面代碼同樣不在重復。

          Activity類部分代碼:

          RelativeLayout rl = new RelativeLayout(this);

          //設置RelativeLayout布局的寬高

          RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

          TextView temp = new TextView(this);

          temp .setId(1);

          temp.setText(“圖片”);

          rl.addView(temp);

          TextView tv = new TextView(this);

          tv.setText(“文字”);

          tv.setId(2);

          LayoutParams param1 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

          param1.addRule(RelativeLayout.BELOW, 1);//此控件在id為1的控件的下邊

          rl.addView(tv,param1);

          Button update = new Button(this);

          update.setText(Button);

          LayoutParams param2 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

          param2.addRule(RelativeLayout.RIGHT_OF, 1);//此控件在id為1的控件的右邊

          rl.addView(update,param2);

          this.addView(rl, relLayoutParams);

          注意:控制位置和樣式的時候,布局和控件使用的方法是一樣的。



          關鍵詞: Android addView

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();