課程2B的內容主要包括:使用變數來更新欲顯示在屏幕上的內容,為按鈕添加事件響應(聯繫XML屬性與Java方法)邏輯等。 ...
課程2B-創建互動式應用(下)
概述
- 課程2B的內容主要包括:使用變數來更新欲顯示在屏幕上的內容,為按鈕添加事件響應(聯繫XML屬性與Java方法)邏輯等。
- 後續的課程會逐步深入地講解使用Java開發基本Android程式需要掌握的語言知識、資料庫知識、編程技巧以及面向對象編程思想等等,大家一起加油!
Polishment-修飾原有佈局
課程2B首先著眼於改進2A中"蜷縮"在屏幕左上部分的咖啡訂購佈局。
從這種狹窄的垂直長條形佈局"解脫"出來有兩個好處
1) 用戶能夠更快地速覽(scan over)整個佈局,而之前的長條形佈局在縱向上的內容太多;
2) 能夠更多地利用水平方向上的空間,減少視覺上的突兀感,使得界面更加美觀。按照之前講過的界面設計"三部曲"(選擇視圖->放置視圖->設置視圖風格)的套路:
1) 選擇視圖:保持原有的視圖控制項不變;
2) 設置視圖的位置:即Header、Button以及TextView之間的位置;
3) 設置視圖風格:除了設置各種Views控制項的align屬性,還需註意TextView與Button控制項之間的間距(用padding或者margin實現,但最好用margin,因為過大的padding可能會增大按鈕的寬高)等細節。- Nested ViewGroups-嵌套視圖組的使用
a) 一個ViewGroup中可以嵌套另外的ViewGroup,開發人員可以靈活使用嵌套視圖組,以達到預期的視覺效果;
b) 理論上,可以做無數層的ViewGroups嵌套,但是,最好不要濫用視圖組的嵌套:僅在必要的時候使用視圖組的嵌套。因為過多的嵌套層數對程式性能來說十分不利:Android會花費較長時間來(遞歸地)計算每個控制項的精確位置。 建議:為了正確地使用並不直觀的XML代碼中視圖組嵌套的方法來達到期望的視覺效果,可以使用事先畫出視圖層級草圖的辦法來幫助理清視圖組嵌套的層次關係。
步驟:設計界面佈局 ----> 畫出界面的Views的樹狀圖 ----> 搭建XML中視圖組層次關係的"骨架"(skeleton)
String類型的變數
在Java代碼中使用String類型的變數,可以避免字元串硬編碼(hard-coded)於XML源文件中。硬編碼的字元串,一旦需要更改,則所有具有相同字面值的字元串都需要更改。
聲明String類型的變數
a)變數取名:儘量做到“見名知意”;
b)轉義字元(escape sequence):如果想在字元串字面值中顯示一些特殊的字元(換行、回車、製表符等),需要在字面值中使用轉義字元,如圖1所示。
圖1. 轉義字元
String Concatenation_字元串拼接:
a)字元串與字元串之間的拼接,可以是String類型的變數,也可以是字元串字面值;
b)字元串與其他類型變數的拼接:比如字元串與int類型的變數之間的拼接:
String str = "String Concatenation";
int num = 666;
System.out.println(str + " with an interger:\t" + num);
以上代碼會輸出String Concatenation with an interger: 666並換行。在將以上Java代碼編譯成位元組碼(Byte Code)時,編譯器對變數num進行了隱式自動類型轉換:將其轉換成了String類型的變數。