2015年7月6日 星期一

[Android] Android開發教學 - 事件觸發

這章節我們來談一下事件觸發,這也算是基礎中的基礎,但是有些人可能知道要怎樣寫,可是卻不太知道為什麼要這樣寫。

首先先到activity_main.xml檔,加入一個Button到畫面上吧。

你只需要很簡單的拖曳過去即可。

























此時,你可注意一下右邊,會多出一個Button的元件,下面是他的屬性欄位,你可以很快速的在這邊設定他的顏色、文字之類的屬性。

其中特別要注意的一個東西是id,在上一個章節有提到,R.java裡面儲存了專案裡面所有的元件辨識符號,這個id值就是這個Button的辨識符號,以這個例子來說,他的id就是button。
















































有了這些基本認識後,我們可以回到MainActivity.java檔中來寫一些簡單的程式。

我們可以看到一開始就幫你打了不少程式碼,因為MainActivity繼承Activity,所以要實作一些相關的方法,而一開始產生的這些是他先幫你弄好的,這些東西現在不了解沒關係,你只要先知道裡面有一個onCreate,在你開啟這個頁面的時候,會先走到這個方法裡面。

所以我們先試著寫一些簡單的程式吧。

我們先在上面寫上這行程式碼。











我們宣告了一個Button的變數,然後他會跳出警告訊息說,是不是要import這個button class到這個class之中,此時你可以使用快捷鍵Alt + Enter快速import。

沒有程式基礎的人可能會對這個有些疑惑,簡單的說就是Java提供了各式各樣的元件,而這些元件都寫成class檔,當你想使用的時候,可以import到你的類別之中,就能夠使用。

同樣的,我們在把TextView也加入吧,此時你的程式碼可能會像是這個樣子。











接下來我們可以到onCreate這個方法裡面寫一些東西。


















前面的button代表,剛才我們輸入的變數名稱,我們想要取得這個button的實體,就必須使用findViewById這個方法,而這個方法後面會填入一個值,我們在上面有提到,所有的元件都存在R.java之中,而辨識符號就是他的id,我們要取得這個Button,只要輸入他的id就能找到了。

而TextView也是用相同的手法就能拿到,這樣我們可以去針對這個Button及TextView做一些簡單的操作了。

我們希望這個按鈕按下去之後,TextView的文字可以有所變化,因此我們要來設定Button的setOnClickListener,事實上,這樣的動作正確一點的說法是,你在設定這個Button的Interface,這樣講起來可能有點抽象,可以拿一個例子來看。

現在有一個按鈕,按下去燈泡會發亮,中間的那段就是Interface。






















他可能知道他被按了,但是他不知道被按了之後要做什麼。

以這張圖來說,現在要做的事情就是加入這線,還沒有要他做什麼事情。























有了這個介面(InterFace)後,之後再決定按下去後要做什麼,妳可以讓燈泡發亮,或者是關閉某個電燈,改變某個文字之類的,都由你來做決定。

在回到程式來說,要怎麼設定這個介面呢,其實很簡單。












你只需要打.setOnClickListener後,在打new On,他就會自動問你是不是要產生這段程式碼,
你可以選擇他,讓他自動的產生。

最後你把你的程式碼改成像是這個樣子。






















可以看到裡面多了一個onClick事件,這是因為你new了一個介面,然後你必須去實作他的方法,有點像是上面的那張圖,一個按鈕多了一條線,而你可以決定那條線要接到什麼地方去,在這個例子裏面,我們希望按下去後,改變了文字。

而這只是其中一個設定介面的方法,其他還有幾個,這邊就不說明了,如果有興趣可以參考我之前寫的文章,其中的事件觸發。

http://aiur3908.blogspot.tw/p/android.html

介面的相關概念必須要了解,Android會用到相當大量的介面,若是還有疑惑可以去找尋有關這方面的知識。

透過這個例子你應該可以有最基本的事件觸發的概念,可以使用介面來達成,以及如何取得元件的實體。

然而他幫你產生的其他程式碼會在之後的章節提到,也就是有關Activity的生命週期。

下一章

開啟其他的Activity