[Android]應用界面建立控件的兩種方式

    在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

相關文章
相關標籤/搜索