接下來,當我們了解如何設計使用者介面後,下一步,就是要進行簡單的撰寫程式的工作了。並且來說明Android基礎程式邏輯架構。
首先,我們先設計一個簡單的功能程式,就是在文字框中輸入文字,再按下按鈕後,會將輸入的文字資料顯示在文字標籤中。設計出來的介面,如圖28所示。
圖28
下一步,在Eclipse的平台上,打開「Memo」專案中的「src/cmd.demo.Memo/」目錄底下的Demo.java檔案,就會先看到Eclipse幫我們預先建立好了基本的程式邏輯。其預設的內容如下,如圖29所示:
圖29
簡單的說明一下,程式邏輯的架構,這個以Java程式語言寫成的檔案。 我們將程式直接拆開,分成二個部份來講解這個「Memo.java」 檔案的內容:
第一部份是在import那些類別,在Java語言中,要使用到任何API之前,都要事先導入相對應的Package。例如:如果要用到那些控制項的類別、控制項的事件類別等資料時,就要先import進來程式碼,才能使用到。
第二部份就是程式的主體,由public class Memo extends Activity { }的程式區塊就是我們要撰寫的主體。在裡面的程式碼就是我們程式開始的內容。而「/**」及「*/」是可以進行程式的文字註解。
在public void onCreate(Bundle savedInstanceState) { }的程式區塊,是預設的啟動方法。
下一步,當我們了解程式的基本架構後,接下來,就是再加入程式運算的邏輯判斷程式碼,在下述的範例中,主要是來了解如何導入其他用到的模組,如何取得、設定使用者介面元件的資料,如何觸發按鈕的事件方法。完整程式碼,如圖30所示。
圖30
簡單的說明一下,新增加程式有那些作用。首先,是如何取得按鈕(Button)的元件,再設定如何設定觸發按鈕的事件方法。
取得按鈕(Button)的元件的程式碼如下:
Button button = (Button)findViewById(R.id.Button01);
就是要宣告一個button的實體,再透過findViewById方法,從資源檔中取得對應的介面按鈕元件。取出的是「R.id. Button01」按鈕元件名稱。當輸入R.id時,再按「.」就會出現目前可以取得元件名稱。
Tip 2:在宣告任何控制項的實體時,要先import android.widget.Button對應的控制項。
接下來,就是要設定觸發按鈕的事件方法,程式碼如下:
button.setOnClickListener(proc_labelChange);
就是要用「Button」類別中的「setOnClickListener」方法。在方法中傳入了一個「proc_labelChange」函式。這就是Android 系統的使用者介面互動方式採用常見的事件驅動方式。
也就是當使用者按下「button」按鈕的時候,Android 系統會去觸發按鈕的「setOnClickListener」方法中所指定的「proc_labelChange」函式。
接下來就是要寫按鈕觸發事件函式,如下述程式碼區塊:
private OnClickListener proc_labelChange = new OnClickListener()
{
public void onClick(View v)
{
}
};
Tip 3:在宣告任何控制項的事件時,要先import android.view.View.OnClickListener;對應的事件。
程式的範例中所有的邏輯與運算內容,都放置在這個事件函式程式區塊中。 就是當使用者按下按鈕時,會觸發「OnClickListener」類型的事件函式。
先宣告EditText及TextView的實體,才可以將輸入的字串,顯示到文字標籤的內容中,程式碼如下:
EditText txtTitle = (EditText)findViewById(R.id.EditText01);
TextView labTitle = (TextView)findViewById(R.id.TextView01);
跟上面 button 的宣告一樣,只是改成宣告EditText及TextView實體,透過 findViewById方法,從資源檔中取得對應的文字欄位元件。要記得,要先import對應的控制項。
接下來的運算邏輯就是將輸入的字串EditText,顯示設定到(setText方法)文字標籤TextView的內容(getText函式)中,程式碼如下:
labTitle.setText(txtTitle.getText().toString());
沒有留言:
張貼留言