在Android上建立應用程序時,必然要建立界面,而界面是由各類各樣的Android控件組成的。java
那麼在界面設計中,有兩種方式添加控件。一種是靜態的,一種是動態的。android
一、 先說第一種靜態建立。git
須要在layout目錄下建立佈局xml文件。示例以下:github
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/button_download" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/download" /> </LinearLayout>
這個佈局很簡單,只是在界面上添加了一個按鈕,顯示如圖所示:ide
在使用該界面的activity上,能夠經過R類來取得xml文件中的控件。佈局
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_download); setupViews(); mDownloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); } private void setupViews() { Button button = (Button) findViewById(R.id.button_download); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { startDownload(strUrl); } }); }
這樣就能夠在代碼中使用該Button控件了。這種方式將界面設計的佈局和代碼分離。
二、第二種方式是動態建立控件。this
也就是說不用xml佈局文件,而是徹底在代碼中建立控件。由xml佈局的東東其實均可以在代碼中實現。實例代碼以下:設計
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupViews(); } private void setupViews() { LinearLayout linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); //add button1 Button button1 = new Button(this); button1.setText("Download"); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(getApplicationContext(), DownloadActivity.class); startActivity(intent); } }); linearLayout.addView(button1); //add button2 Button button2 = new Button(this); button2.setText("AlertDialog"); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(getApplicationContext(), AlertDialogActivity.class); startActivity(intent); } }); linearLayout.addView(button2); setContentView(linearLayout); }
這種方法雖然沒有將佈局文件寫在xml中這樣清晰,可是有些時候卻很方便、簡單。也會用到的。
以上示例代碼可下載,地址爲:https://github.com/tingzi/AndroidExample.gitcode