直接使用代碼建立Android視圖元件
一般來說,我們在建立Android視圖時,會透過工具直接對xml進行編輯并在onCreate中設(shè)置setContentView(R.layout.main);直接建立視圖,只是就我個人習(xí)慣,還是喜歡敲代碼來弄這些東西
所以今天學(xué)習(xí)了一下怎么如何直接使用代碼建立Android視圖并加入控件


首先先看這幾張圖,Activity中只有一個setContentView的函數(shù),由此推斷,Activity僅有一個View的成員
而ViewGroup是可以放入多個View的集合類別,因此若是我們要建立視圖,Activity下的***層必定要是ViewGroup或其子類
由此可知,要客制自己的復(fù)合視圖控件,就只能透過ViewGroup來實踐
代碼示例:
- public class LEDTestActivity extends Activity {
- LinearLayout m_layout;
- private Button m_btnOn;
- private Button m_btnOff;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //setContentView(R.layout.main);
- m_layout = new LinearLayout(this);
- m_btnOn = new Button(this);
- m_btnOn.setText(“ON”);
- m_btnOn.setWidth(300);
- m_btnOff = new Button(this);
- m_btnOff.setText(“OFF”);
- m_btnOff.setWidth(300);
- m_btnOn.setOnClickListener(new Button.OnClickListener(){
- public void onClick(View v) {
- // TODO Auto-generated method stub
- }});
- m_btnOff.setOnClickListener(new Button.OnClickListener(){
- public void onClick(View v) {
- // TODO Auto-generated method stub
- }});
- m_layout.setHorizontalFadingEdgeEnabled(false);
- m_layout.setVerticalFadingEdgeEnabled(true);
- m_layout.addView(m_btnOff);
- m_layout.addView(m_btnOn);
- setContentView(m_layout);
- }
- }
在代碼中,我直接建立LinearLayout,并將二個按鈕元件放入LinearLayout中,并呼叫Activity的setContentView設(shè)定為m_layout
如此一來一個最簡單的范例就達成了
【編輯推薦】