2015年6月6日 星期六

L5: 元件的Onclick 處理事件

在 android的程式設計中,要處理 UI 元件的相關事件通常需要撰寫相關的listener,程式有一些嚇人。如果畫面中有一個button,其id是button,而我們希望使用者按下button時可以在畫面上顯示Hello,那我們需要寫出OnClickListener,步驟如下:
1. 加入button元件,確定其id為button

2. 到MainActivity.java的OnCreate裏以findViewById找到畫面中的button元件 (如何利用Android Studio幫你快速建立此行程式可以參見 L3: 使用 textView 當輸出)
3. 鍵入 bt.,畫面及如下所示,列出了可選項目,點選setOnClickListener
4. 在 bt.setOnClickListener()的一對小括號中間鍵入 new O (注意,要大寫O),就會出現OnClickListener的選項,如下圖。
點選OnClickListener的選項,神奇的事情發生了,Android Studio幫你完成了框架。
5. 剩下的事情就是在Onclick(View v) 內寫下你要做的事: 顯示 Hello。可以利用
    Toast.makeText來完成。因此在OnCreate外,先建立一個顯示訊息的副程式:

public void showmsg(String msg){
    Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}

然後在剛才的OnClick中呼叫 showmsg來顯示Hello即可。

    showmsg("Hello");

6. 完工。

其實以上步驟不難,只要善用Android Studio的 intellisense功能,就可少記憶很多東西。

Android Studio還有另外一個快速辦法,對於一些UI物件都可試試。步驟如下:

1. 建立Button元件,參考前述步驟 1。
2. 寫出onclick要呼叫的副程式,記得要傳入View v。
   public void xxx(View v) {
       Toast.makeText(this,"Hello",Toast.LENGTH_SHORT).show();
 }

3. 點選 button 元件,在其 Properties視窗中找尋 onClick,按下右邊的下拉選單,就可看到所建立的副程式 xxx,選擇此副程式。

4. 完工。

對於OnClick事件處理,這真是一個方便的做法,可惜Android Studio還沒有對其他事件提供相同的優待,期待後面的版本可以加入這樣的功能。目前對於其他事件(例如 OnCheckedChanged) 就只有繼續採取第一種作法了。

2015年6月5日 星期五

Short Note:快速產生 Override 方法

善用Android Studio 的協助,可以減少記憶一些固定的方法名稱及參數等。以覆寫固有的方法來說,可以用下述方法,快速建出基本的方法框架。

1. 以滑鼠點選要插入方法的位置。
2. 選擇功能表的 Code / Override Methods (如下圖)

3. 選擇所要的方法 (可複選)

4. 按下OK就完工了。