1. 程式人生 > >Android知識點匯總(3)

Android知識點匯總(3)

pri fragment rime blog 更新 roi undle 菜單 andro

前言:在前兩個星期我們進行了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();改為

DatePickerFragment dialog =DatePickerFragment.newIntstance(mCrime.getDate());

最後我們就要獲取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)