歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> [Android]直接使用代碼建立Android視圖元件

[Android]直接使用代碼建立Android視圖元件

日期:2017/3/1 10:39:09   编辑:Linux編程

一般來說,我們在建立Android視圖時,會透過工具直接對xml進行編輯

並在onCreate中設置setContentView(R.layout.main);直接建立視圖

只是就我個人習慣,還是喜歡敲代碼來弄這些東西

所以今天學習了一下怎麼如何直接使用代碼建立Android視圖並加入控件

首先先看這幾張圖,Activity中只有一個setContentView的函數,由此推斷,Activity僅有一個View的成員

而ViewGroup是可以放入多個View的集合類別,因此若是我們要建立視圖,Activity下的第一層必定要是ViewGroup或其子類

由此可知,要客制自己的復合視圖控件,就只能透過ViewGroup來實踐

代碼示例:

[java]

  1. public class LEDTestActivity extends Activity {
  2. LinearLayout m_layout;
  3. private Button m_btnOn;
  4. private Button m_btnOff;
  5. /** Called when the activity is first created. */
  6. @Override
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. //setContentView(R.layout.main);
  10. m_layout = new LinearLayout(this);
  11. m_btnOn = new Button(this);
  12. m_btnOn.setText("ON");
  13. m_btnOn.setWidth(300);
  14. m_btnOff = new Button(this);
  15. m_btnOff.setText("OFF");
  16. m_btnOff.setWidth(300);
  17. m_btnOn.setOnClickListener(new Button.OnClickListener(){
  18. public void onClick(View v) {
  19. // TODO Auto-generated method stub
  20. }});
  21. m_btnOff.setOnClickListener(new Button.OnClickListener(){
  22. public void onClick(View v) {
  23. // TODO Auto-generated method stub
  24. }});
  25. m_layout.setHorizontalFadingEdgeEnabled(false);
  26. m_layout.setVerticalFadingEdgeEnabled(true);
  27. m_layout.addView(m_btnOff);
  28. m_layout.addView(m_btnOn);
  29. setContentView(m_layout);
  30. }
  31. }
在代碼中,我直接建立LinearLayout,並將二個按鈕元件放入LinearLayout中,並呼叫Activity的setContentView設定為m_layout

如此一來一個最簡單的范例就達成了
Copyright © Linux教程網 All Rights Reserved