今天在看Android的初學特訓班訊息顯示那一章節,覺得這本書在匿名物件解釋的沒有很好,書上解釋匿名物件有種輕鬆寫法連續執行多個方法,EXAMPLE: new 類別名稱.方法一( ).方法二( ).方法三( ).......;
自行建立物件使用
我在JAVA實際上測試有沒有這方法,結果是如下圖結果:
StringBuilder的方法append( )連續執行多個方法
如上明顯有錯誤,但我又想到有個跟書上很類似寫法,就是StringBuilder的方法append( ),也可以使用物件名稱.方法一( ).方法二( ).方法三( ).......;,如下圖
後來看了一下StringBuilder的append( )方法,原來她會回傳一個StringBuilder物件,所以我們才可以一直 .append( )接下去加字串,意思就是如上圖b.append("HI")回傳一個StringBuilder物件,所以接下來在.append("JAVA")就完全沒有問題,在第一張圖會錯的原因就是我在呼叫第一個方法之後,沒有再有回傳值,所以再點第二方法c( )時就發生錯誤,c( )沒有物件參考。
AlertDialog.Builder對話方塊
書上寫到我們在寫AlertDialog彈跳對話方塊,可以使用匿名物件執行多個方法的使用,如下圖程式碼
new AlertDialog.Builder(MainActivity.this)
.setTitle("確認視窗:)
.setIcon(R.drawable.ic1)
.setMessage("確定結束應用程式")
.show();
就是產生彈跳視窗供使用者點選,這可以使用同一物件執行多個方法的原因是setTitle( ),setIcon( ),setMessage( )都會回傳一個AlertDialog.Builder的物件,供我們更方便使用,不用在每個方法都要一個物件實體參考,我在Android的官網查到的API如下圖供大家參考,今天又學到了一課。
Builder是一個AlertDialog的內部靜態類別,並且繼承java.lang.Object
setTitle是一個方法,注意Return的那欄
留言列表