Android知識點匯總(3)
前言:在前兩個星期我們進行了CriminalIntent應用的一些基礎性的框架的編寫,在這一部分基礎性的東西的編寫過程之中,我們學會了一些新的知識——UI fragment、fragment。這兩個新知識我已經在Android知識匯總二裏面進行了較為詳細地闡述,有需要的朋友可以前往此隨筆去查看呦!(有什麽不足的十分歡迎大家指出來,我會在之後的隨筆之中加以改進??)好了好了,你們也可能覺得煩了,我們接下來進入今天隨筆的正題……
正言:在這兩個星期之內我們需要完成的是CriminalIntent應用的對話框內容、工具欄以及SQLite數據庫這三個部分的編寫。大家應該很容易看出這三部分是CriminalIntent應用的核心組成部分,所以這三部分也肯定會遇到好多我們此前沒有接觸過的知識。接下來我會總結出這之中我個人認為比較重要的一些知識點。
CriminalIntent應用對話框
對話框的作用:我們添加CriminalIntent對話框的目的是為了便於用戶修改crime記錄日期。
對話框的操作方式:用戶只要點擊CrimeFragment中的日期按鈕,應用就會彈出對話框,具體的操作過程如下圖。
在對話框設計這個章節中,我們主要完成的是兩部分的內容:日期對話框和Fragment數據傳輸。
日期對話框
在日期對話框的完成過程中我們使用的依然是Fragment知識,大概步驟如下:
(1)創建DialogFragment
(2)顯示DialogFragment
(3)設置對話框的內容
Fragment數據傳輸
此部分的內容主要是完成完成兩部分的內容:
(1)將數據傳輸給DatePickerFragment
要傳遞crime日期給DatePickerFragment,需要將他保存在DatePickerFragment的argument bundle中。創建和設置fragment argument通常是在newInstance中完成的,所以我們要在 DatePickerFragment中添加newInstance方法,方法代碼如下:
接下來我們在CrimeFragment中也添加newInstance方法:
把原來CrimeFragment中onClick中的DatePckerFragment dialog = new DatePickerFragment();改為
最後我們就要獲取Date對象並且初始化DatePicker,實現代碼如下:
(2)返回數據給CrimeFragment
首先我們設置目標Fragment,這個比較簡單就是在CrimeFragment中加入一句代碼:private static final int REQUEST_DATE = 0;
接下來我們加入高亮選取日期按鈕更新代碼,代碼如下圖:
最後我們設置一個私有方法upDate,把這個私有方法添加到代碼CrimeFragment中,代碼如下圖:
工具欄
工具欄的作用:工具欄可以放置菜單選項、提供應用導航,還能幫助統一設計風格、塑造品牌形象。
工具欄的樣式及其使用方法:工具欄給出了crime記錄的菜單項,並且還有向上的功能,具體如下圖。
在這個章節中我們要完成的是三部分內容:工具欄、菜單以及層級式導航。
菜單工具欄
(1)首先我們要在strings.xml中添加一些字符串(有一些現在還用不到,不過沒關系我們先添加進去),如下圖:
(2)定義菜單,為了創建菜單資源我們需要在fragment_crime_list.xml中寫入如下代碼:
(3)創建菜單
首先我們要覆蓋onCreateOptionsMenue方法,實現實例化fragment_crime_list.xml中定義的菜單,代碼如下:
然後調用setHasOptionsMenu方法實現菜單的回調,代碼如下:
(4)響應菜單項選擇
首先刪除CrimeLab中隨機crime記錄的代碼;
然後在CrimeListFragment中添加響應菜單項選擇事件,如下:
SQL數據庫
數據庫作用:持久化保存數據。
數據庫的完成過程:
(1)定義schema
(2)創建初始數據庫
(3)修改CrimeLab
(4)寫入數據庫
小結:這幾個單元的代碼編寫讓我明白了代碼編寫需要十分的嚴謹,要邊寫邊運行不能等到編寫了好多之後再測試,這樣如果錯了將會很頭疼。希望大家也能養成邊寫代碼邊測試的好習慣!
Android知識點匯總(3)