Microsoft Word - Android App 手機應用程式設計課程-0429.docx

Size: px
Start display at page:

Download "Microsoft Word - Android App 手機應用程式設計課程-0429.docx"

Transcription

1 臺北市市立第一一女子高級級中學 102 學年年度資研社社社課 Android App 手機應用用程式設設計課程 認識 Android 本講義參參考底本 : Google Android 手機應用用程式設計入門 第五版 Gasolin 松崗 Android 是由 Google 領頭打造造的手持式設設備標準作業業系統平台 由由於 Android 系統完全開放, 任何何人都可以查看看原始碼並加加以應用 2010 年底調查報報告指出,Android 作業系系統為全球占占有率最高 (32.9%) 的智慧型手機平平台 Android 系統基本架架構 1 引自 : Android 系統的底層 : 是以 Linux 核心為中心, 包含和硬體相相關的各種螢螢幕 鍵盤 無無線 網路 記憶憶體 音效驅動動程式 Android 為使使用者介面和和系統服務提提供各種函式庫 (Libraries), 方便移動設設備的開發 Android 執行環境 : 主要要以 Java 語言言編寫,Google 特別為移移動平台訂製 Dalvik 虛擬機機器 運行環境, 可以執行編譯譯成.dex 格式式的應用程式式 Android 應用程式框架和和使用者介面 : 提供各種 API 和工具, 如活動 (Activity) 管理 內內容 (Content Provider) 管理 資源管理 套件管理 通知管理等子子系統 Android 應用用程式層 : 提供使用者直直接操作系統應應用程式 開開發者可以開開發不同的應用用程式並安裝到 Android 手持持設備中 Android 應用程程式以 java 語言編寫

2 基礎篇 Android Developers 參考官方網站 : 參考教學影音 : Unit 1 安裝 Android 開發工具 Android 開發環境所需的工具程式可由網路免費下載取得 安裝流程分以下步驟 : 下載安裝 Java 開發工具 (Java SE Development Kit, JDK) 下載並安裝 Android 開發工具 (ADT 套件 -Android Development Kit) 下載 Android SDK ( 程式開發組件 Software Development Kit) 2 Step 1: 下載安裝 Java 開發工具 (Java SE Development Kit, JDK) [1] 下載並安裝 Java 開發套件前往 網站, 點選 Java Platform (JDK) 7u51 下載 安裝 [2] 設定環境變數路徑 到 我的電腦 找到 Java 安裝的路徑 (example: C:\Program Files\Java\jdk1.7.0_51\bin 複製下來即為 javac 路徑 (Path) 開始 / 電腦 按右鍵 / 選 內容 視窗左側選 進階系統設定, 點選下方的 環境變數

3 新增使用者變數 : 按下 新增 設定變數名稱 :Path 設定變數值 : 貼上 javac 的位置例如 :C:\Program Files\Java\jdk1.7.0_51\bin 3 按下 確定 測試一下 : 開啟命令列模式 開始 ( / 輸入 cmd ) 進入命令提示字元, 輸入 javac 若能看見說明文件即表示環境變數設定成功 Step 2: 下載並安裝 Android 開發工具 (ADT 套件 -Android Development Kit) [1] Get the Android SDK: 前往 網站, 按下 Download the SDK -ADT Bundle for Windows 取得 SDK 完整開發程式套件 ADT 套件 ( ADT Bundle) 包含完整的 Eclipse 整合開發環境 Android 開發工具擴充套件 (ADT Plugin) 與 Android SDK 工具 [2] ADT 套件下載後, 不需安裝, 只要解壓縮到 C:\ 即可執行 可將解壓縮的資料夾取名為 adt 裡面有 eclipse 和 SDK 兩個資料夾 [3] 裡面的 eclipse 子目錄中的 Eclipse.exe 執行檔即為 Eclipse 的整合開發環境, 用來寫 Java 程式與 Android Project 按右鍵, 可 釘選到工作列 上

4 [4] 啟動 Eclipse: 第一次啟動 Eclipse 會彈出對話框, 讓你決定預設工作目錄 (Workspace) 你可以使用預設位置, 也可以設定在 c:\user\ 英文名字 \workspace 這是存放你的個人檔案的地方 4 Step 3: 下載 Android SDK ( 程式開發組件 Software Development Kit) 接著, 必須開啟 Android SDK 管理工具, 下載最新的可用組件列表 下載完後, 在 Packages 列表中, 可以看到目前可用的目標 SDK 平台 (platform) 文件 範例與 Google APIs 列表 [1] 選單上選 Window > Android SDK Manager 選項, 開啟 Android SDK 管理工具 每個組件後面的 Status 欄位會顯示各組件目前的安裝狀態 安裝狀態分為 Installed ( 已安裝 ) Not Installed ( 未安裝 ) 和 Upgrade ( 可更新 ) [2] 開始安裝 : 勾選對應版本, 如 Android (API 19) 的目標 SDK 文件 範例 Google API 組件, 然後按下 Install x packages ( 安裝選取項目 ) 按鈕即可 (x 代表將安裝的數目 )

5 [3] Android 多個 SDK 版本可以並存, 但一般開發時只需選擇最新版本的 SDK, 就能開發向前版本相容的 Android 應用程式 [4] 下一個視窗, 可確認預備安裝的 SDK 組件 勾選 Accept ALL ( 接受全部授權宣告 ) 選項, 按下 Install ( 安裝 ) 按鈕, 即開始自動下載並安裝 [5] 安裝完成後, 可看到剛剛勾選的 SDK 組件都已經變成 Installed ( 已安裝 ) 5

6 Unit 2 設定 Android 虛擬機器 (AVD, Android Virtual Device) Android 開發工具 (ADT) 提供了支援不同版本虛擬機器的功能 在使用虛擬機器之前, 必須先建立一個虛擬機器, 才可在 Eclipse 開發環境中使用 建立新的虛擬機器 : [1] 開啟 Window > Android Virtual Device Manager [2] New 一台虛擬機器 : 點選右側的 New 按鈕, 會彈出 Create New Android Virtual Device (AVD) 視窗 輸入虛擬機器名稱 (AVD Name): 例 MyAVD01 選擇手持裝置 (Device): 例 5.1 WVGA 選擇適當的目標版本 (Target): 例 Android API Level 19 選擇 CPU: 例 ARM 勾選 Snapshot ( 加速 ) 按下 OK 按鈕 即可建立新的虛擬機器 6 [3] 啟動虛擬機器 : 建立好後, 點選妳的虛擬機器, 按下 Start, 在彈出的視窗點選 Launch 按鈕, 即可啟動虛擬機器

7 入門篇 ( 一 ) Unit 3 建立一個 Android 應用程式 3-1 : 建立新程式專案 BMI [1] 回到 Eclipse 整合環境 [2] 螢幕上方選單列 File > New > Project > Android Application Project [3] 開啟 New Android Application 對話視窗: Application Name: BMI Project Name: BMI Package Name: com.example.bmi 7 設定畫面說明 : 名稱 Application Name Project Name Package Name Compile With Minimum Required SDK 描述應用程式顯示在螢幕上的標題這個專案所在的資料夾名稱套件 (package) 名稱選擇用來編譯專案的目標 SDK 版本本應用程式所支援的最低 SDK 版本代號 [4] 按 Next, 前往專案設定畫面 勾選 Create custom launcher icon ( 建立 App 圖示 ) 勾選 Create activity ( 產生專案程式碼 ) 勾選 Create project in Workspace ( 自訂儲存專案的位置 預設值即可 ) [5] 選擇 Activity 樣式 :Blank Activity

8 [6] 建立新的 Activity: 名稱 Activity Name Layout Name Navigation Type MainActivity activity_main None 預設值 說明建立的 Activity 類別名稱稱預設的 layoutt XML 檔案名名稱畫面上提供的的導覽方式 8 [7] 按下 finish 按鈕即完完成建立應用程程式專案的工工作 3-2 : 程式專案案架構 src/: 原始檔檔目錄 gen/: 自動動生成 (Generate) 目錄 R.java 中產生的 R 類類別, 就像是是資源字典大全全 包含了使使用者介面 圖圖像 字串等對對應各式資源源的識別符號 (id). 你完全不不需要, 也避避免手工修改改 res/: 資源 (Resource)( 目錄錄存放 layout l, values 與 drawable Layout: 版面配置目置目錄 Values: 參數值目錄錄 Drawable: 圖片目目錄 HW01- 下載安安裝 Android APP 開發發環境 新新增 2 個 AVD ( 手機 平板) 新新增 2 個程程式專案 (CtoF, FtoC, TriangleArea,...)

9 Unit 4 描述使用者介面 1. 設定並執行模擬器, 看看模擬器運作後的結果 我們看到一個文字欄位, 上面有一串文字 Hello World! 這就是 Android 預設程式架構的範例囉 由於才剛開始實際接觸到 Android 應用程式, 我們先從簡單的開始 : 現在, 我們的目標是將 Hello World! 換成別的文字 那麼, Hello World!, 這串字串藏在哪裡呢? 2. 點選視窗左下角, 切換到 activity_main.xml 標籤 它是使用者介面的描述檔 我們會看到以下程式碼 : 9 1 <RelativeLayout xmlns:android=" 2 xmlns:tools=" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingbottom="@dimen/activity_vertical_margin" 6 android:paddingleft="@dimen/activity_horizontal_margin" 7 android:paddingright="@dimen/activity_horizontal_margin" 8 android:paddingtop="@dimen/activity_vertical_margin" 9 tools:context=".mainactivity" > <TextView 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" 14 android:text="@string/hello_world" /> </RelativeLayout> 原來 Hello World, Bmi! 字串就藏在 res/layout/main.xml 這個檔案的第 10 行中 3. 修改看看 : 我們只要簡單地將第 10 行修改成 android:text="hello World, BMI! 4. 看看結果 : 切換回 Graphical Layout, 或再執行一次模擬器, 就可以得到一個相似的應用程式, 只是內文變成了我們剛剛修改的內容 5. 再改改看 : 既然找到了 Hello World, BMI! 字串, 我們就試著將 android:text 屬性值從 Hello World, BMI! 改成 哈囉,BMI, 然後執行看看吧 android:text=" 哈囉,BMI" 結果發現 Android 模擬器中文嘛也通, 字型也相當漂亮

10 4-1 Android App 的使用者介面說明 : Android App 的使用者介面由 XML 描述檔案設定, 也可以由圖形化版型介面設計工具 (Graphical Layout Editor), 經過元件拖 拉 放的方式, 做簡單版面設計工具 在 Android 的應用程式架構中, 提供了一套使用者介面 (User Interface;UI) 架構給予開發者建立 Android 平台上各種 UI, 對每一個 Android 應用程式內的使用者介面來看, 皆是由不同的 View 與 ViewGroup 物件所構成, 在 Android 使用者介面架構內提供了多種不同的 View 與 ViewGroup 類別, 如圖一所示, 這些 Android UI 架構內所定義的基礎類別, 分別提供給開發者針對使用者介面設計 開發及管理使用 10 取自 : 要開始學習 Android 應用程式確實很簡單吧? 不過為了顯示 Hello World, BMI, 也用到了許多程式碼 到底這些程式碼有什麼含意呢? 4-2 講解 active_main.xml 檔案內容 XML (Extensible Markup Language) 是一種標記描述語言, 不管是語法還是看起來的樣子, 都相當類似網頁所使用的 HTML 標記語言 XML 被廣泛地運用在 Java 程式的設定中, 副檔名為.xml 結尾的檔案通常就是包含 XML 語言描述的檔案 active_main.xml 文件裡, 第一行是每個 XML 描述檔固定的開頭內容, 用來指示這個文字檔案是以 XML 格式描述的 1 <RelativeLayout xmlns:android=" 2 xmlns:tools=" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingbottom="@dimen/activity_vertical_margin" 6 android:paddingleft="@dimen/activity_horizontal_margin" 7 android:paddingright="@dimen/activity_horizontal_margin" 8 android:paddingtop="@dimen/activity_vertical_margin" 9 tools:context=".mainactivity" > <TextView 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" 14 android:text="@string/hello_world" /> </RelativeLayout>

11 1. 第 1 行與第 16 行 <RelativeLayout xmlns:android=" </RelativeLayout> 接著我們看到第一個標籤, 與 HTML 網頁標籤相當類似 <RelativeLayout></RelativeLayou> " 相對位置版面配置 "( RelativeLayout) 標籤, 使用了兩個 RelativeLayout 標籤, 來表示一個介面元件的區塊 後頭的標籤前加上一個 / 符號來表示結束標籤 " 相對位置版面配置 " 所指的是包含在 RelativeLayout 標籤中, 所有元件的配置方式, 是根據介面元件之間關係排列的意思 xmlns:android=" 11 以 xmlns 開頭的這串敘述, 是用來宣告這個 XML 描述檔案的的名稱空間 (NameSpace), 後面接的 URL( 網址 ), 表示這個描述檔案會參照到 Android 名稱空間提供的定義 所有 Android 版面配置檔案的最外層標籤中, 都必須包含這個屬性 注意標籤需要兩兩對稱 一個標籤 <RelativeLayout> 在一串敘述的前頭, 另一個標籤 </RelativeLayout> 在敘述的末尾 如果你修改過的標籤沒有閉合 ( 忘了加 < / > 等符號 ), Eclipse 畫面上也會出現小小的警示符號來提醒你 2. 第 3-4 行 android:layout_width="match_parent" android:layout_height="match_parent" 這些包含在 < RelativeLayout > 標籤中的敘述被稱為 RelativeLayout 標籤的 屬性 Android 應用程式在 layout 目錄中的標籤, 大多數的屬性前都有一個 android: 前綴 同一個介面元件的屬性之間, 是以空白做區隔, 因此事實上你也能將多個屬性寫在同一行 當然, 將屬性排成多行更易於閱讀 我們應該保持這個好習慣 介面元件都有許多共同的屬性, 例如介面元件的長, 寬度設定屬性 Android 介面元件的寬度 長度設定屬性分別叫做 android:layout_width android:layout_height 兩個都設定為 match_parent 參數值 match_parent 如其名, 所表達的的意思就是 " 配合上層元件大小 " 預設 RelaveLayout 介面元件就會佔滿整個螢幕空間 介面元件彼此間也會有一些不同的屬性, 例如 LinearLayout ( 線性版面配置 ) 標籤的 android:orientation ( 版面走向 ) 屬性 填入 vertical ( 垂直 ) 屬性值, 表示這個介面的版面配置方式是從上而下垂直地排列其內含的介面元件 android.view.viewgroup 是各種佈局配置 (layout) 元件的基礎類別 常見的有 LinearLayout( 線性版面配置 ) FrameLayout( 框架版面配置 ) TableLayout( 表格版面配置 ) AbsoluteLayout( 絕對位置版面配置 ) RelativeLayout( 相對位置版面配置 ) 雖然有這麼多種版面配置方式可以選用, 但大多數的應用程式並不需特地去改變預設的 RelaveLayout 的配置, 只要專注在其中填入需要的介面元件即可 決定配置方式後, 標籤內的內容才是一般應用程式開發時較常修改之處

12 3. 第 11 和 14 行 <TextView /> TextView ( 文字檢視 ) 是我們看到的第一個熟悉的介面元件 其作用是顯示文字到螢幕上 你可能注意到這個標籤結尾使用了 /> 符號 /> 符號表示這個 XML 敘述中沒有內文, 亦即此介面元件描述中不再包含其他介面元件, 也表示這個介面元件就是這個螢幕中最小的組成單元了 4. 第 6-9 行 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world"" 12 我們來看看 TextView 介面元件中包含了哪些屬性 [1] android: layout_width 和 android:layout_height 我們剛剛已經學過了, 分別代表寬度跟長度 [2] 兩個屬性都用到一個新的參數值 wrap_content ( 包住內容 ), 亦即隨著文字欄位行數的不同而改變這個介面元件的寬度和高度 [3] 最後的 android:text 屬性則是 TextView 介面元件的主要屬性, 亦即文字欄位中顯示的文字內容 [4] 這段字串所代表的意義, 馬上會接著在後面章節說明 我們現在已知道是 : 只要將 android:text 屬性內容替換成我們想要文字, 在預覽畫面或在模擬器中就會顯示對應的文字 將以上的 XML 描述綜合起來, 我們就可以得知 active_main.xml 想表達的介面

13 Unit 5 設計使用者介面 5-1 視圖 (View) 軟體設計的過程中, 常常會遇到需要頻繁修改使用者介面的情境 改著改著程式設計師們就累積起了一些經驗, 也歸納出了許多應對之道 如著名的 MVC(Model-View-Controller) 模式 Google Android 為我們考慮了介面修改問題 Android 為了單純化介面修改方式, 採用了目前比較流行的解決方案 -- 即將介面描述部份的程式碼, 抽取到程式外部的 XML 描述文件中 我們在前面的過程裡已經學到, 如何在 Android 應用程式中替換 TextView 介面元件所顯示的純文字內容 那麼... 這個經驗能不能直接用到 BMI 應用程式的設計上呢? 我們先回過頭來思考, 要實現基本的 BMI 計算功能, 在螢幕上至少需要哪些介面元件, 以供使用者輸入數值和查看結果? 13 /blogs.dir/1/files/2012/09/unnamed-3-220x391.jpg Iphone BMI APP 為了輸入 BMI 程式所需的身高體重值, 大致上我們需要兩個 TextView 元件用來提示填入身高 Height(cm) 體重 Weight(Kg) 數字 另外也需要兩個文字輸入欄位元件 EditText 用來填入身高體重數字 我們還需要一個按鈕 (Button) 來開始計算, 而計算完也需要一個 TextView 元件來顯示計算結果 於是初版的 BMI 應用程式 介面的樣子就浮現出來了

14 5-2 開始設計 使用視覺化介面設計工具輔助編輯 activity_main.xml 檔案 1 輸入介面設計 定義一個基本 BMI 程式所需的身高 (Height) 輸入欄位, 就會用到 EditText, 與 TextView 介面元件, 其描述如下 : TextView 介面元件 : <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text=" 身高 (cm)" /> 14 EditText 介面元件 : <EditText android:id="@+id/height" android:layout_width="match_parent" android:layout_height="wrap_content" android:numeric="numberdecimal" android:text="" /> 說明 : [1] EditText 介面元件描述的基本的組成與 TextView 介面元件相似, 都用到了 android:layout_width 與 android:layout_height 屬性 [2] 指定的另外兩個屬性 android: numberdecimal android:text 則是 EditText 介面元件的特別屬性 [3] android:text 屬性是繼承自 TextView 介面元件的屬性 android:numeric=" numberdecimal " android:text="" [4] 將 android:numeric 指定為 numberdecimal, 可以限制使用者只能在 EditText 文字欄位中輸入十進位數字 [5] android:text 屬性則是指定 EditText 介面元件預設顯示的文字 ( 數字 ) 2 按鈕介面設計我們再來看看 Button ( 按鈕 ) 介面元件 <Button android:id="@+id/submit" android:layout_width="match_parent" android:layout_height="wrap_content" android:text=" 計算 BMI 值 " /> 說明 :Button 介面元件同樣有 android:layout_width 與 android:layout_height 屬性, 另外一個 android:text 屬性則用來顯示按鈕上的文字 3 整合 我們這就從文件中挑出我們需要的 TextView( 文字檢視 ) EditText( 編輯文字 ) Button( 按鈕 ) 三種介面元件, 照前面的設計擺進 RelativeLayout ( 版面配置 ) 元件中

15 4 完整的 activity_main.xml 介面描述檔 <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" /> 15 <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="numberdecimal" > <requestfocus /> </EditText> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="numberdecimal" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="36dp" android:textappearance="?android:attr/textappearancelarge" /> </RelativeLayout>

16 5 檢視結果 我們可以啟動模擬器檢視執行結果 或是在頁面標籤下選擇 Layout 標籤, 來預覽頁面配置 啟動模擬器之後, 模擬器畫面上出現了兩個輸入欄位 欄位上方分別標示著 身高 (cm) 體重 (kg) 在兩個輸入欄位下方, 是一個標示著 計算 BMI 值 的按鈕 當你在欄位中試著輸入文字或數字 ( 你可以直接用電腦鍵盤輸入, 或按著模擬器上的虛擬鍵盤輸入 ) 時, 你也會發現, 正 XML 描述檔的描述中對兩個 EditText 欄位所規定的, 欄位中只能輸入數字 我們在上面 XML 描述檔中定義的最後兩個 TextView 介面元件, 由於並未替這兩個介面元件指定 android:text 屬性, 所以在螢幕上並未顯示 這兩個介面元件在後面會派上用場 16 6 革命的路還長 高興了沒多久, 你發現按下 " 計算 BMI 值 " 按鈕後, 應用程式完全沒反應 這是正常的, 因為我們還沒處理從介面輸入取得身高體重 將數值導入 BMI 計算方式 將結果輸出到螢幕上... 等等 BMI 應用程式的關鍵內容 不過在進入了解程式流程之前, 我們還有一個 android:id 屬性尚未解釋哩 接著我們將透過講解 android:id 屬性, 來進一步了解 Android UI 7 視覺化的介面開發工具 目前的 ADT 版本提供了預覽介面的功能, 但尚未提供方便地視覺化拖拉介面元件的開發工具 以後也許 ADT 會加入完整的 GUI 拖拉設計工具 但在 ADT 加入完整的 GUI 拖拉設計工具之前, 已經有人寫出來了對應 Android 的 GUI 拖拉設計工具, 可供使用 DroidDraw - Android GUI 拖拉設計工具 Homework#2: 開啟 2 個專案, 設計類似 BMI 的應用程式介面 例如 : 面積計算器 我的幸運數字 利息計算器

17 Unit 6 程式設計 接著要觀察主要程式邏輯的內容囉 6-1 預設程式內容 打開 src/com/demo/android/bmi 目錄下的 MainActivity.java 檔案,Eclipse+Android 開發工具已經幫我們預先建立好了基本的程式邏輯 其預設的內容如下 : 1 package com.demo.android.bmi; 2 3 import android.app.activity; 4 import android.os.bundle; 5 6 public class MainActivity extends Activity { 7 /** Called when the activity is first created. */ 9 public void oncreate(bundle savedinstancestate) { 10 super.oncreate(savedinstancestate); 11 setcontentview(r.layout.activity_main); 12 } 13 } 17 講解 比起什麼標籤都對稱的 XML 介面描述檔來說, 這個以 Java 程式語言寫成的檔案雖然篇幅短, 但反而要難讀得多 我們將程式直接拆開, 分成幾個部份來講解這個 MainActivity.java 檔案的內容 : 第 1 行 : package com.demo.android.bmi; 這一行的作用是指出這個檔案所在的名稱空間 package ( 套件 ) 是其關鍵字 使用名稱空間的原因是程式一旦擴展到某個大小, 程式中的變數名稱 方法名稱 類別名稱難免重複, 這時就可以將定義的名稱區隔管理在 package 下, 以避免相互衝突的情形發生 Java 的 package 設計成與檔案系統結構相對應, 如我們的 package 設定是 package com.demo.android.bmi, 則這個類別就該在指定目錄的 com/demo/android/bmi 路徑下可以找到 同時也別忘了 Java 程式語言每段敘述語句的結尾處, 與大部分的程式語言一樣需加上一個分號 ;, 以表示一行程式敘述的結束 第 3,4 行 : import android.app.activity; import android.os.bundle; 程式中預設導入了 android.app.activity 跟 android.os.bundle 兩個 Package, 在所有的 Android 應用程式中都會用到這兩個 Package import ( 導入 ) 是用作導入 Package 的關鍵字 在 Java 語言中, 使用到任何 API 前都要事先導入相對應的 Package 我們馬上將學到這兩個 Package 的用途 完整的 API 可查閱官方的 package 列表 :

18 第 6,13 行 : public class MainActivity extends Activity { } 第 6 行開始了程式的主體 其組成是這樣的 : public class MainActivity MainActivity 是這個類別的名稱 class 則是用作宣告類別關鍵字 public 關鍵字是用來修飾 MainActivity 這個類別 表示 MainActivity 是個 公開 的類別, 可以從 package 外部取用 public class MainActivity 後面再加上 extends Activity 敘述, 則表示 MainActivity 這個類別的功能 型別等全繼承自 Activity 類別 extends 是繼承 (Inherit) 類別的關鍵字 Activity 是來自於我們在第 3 行剛導入的 Package 18 因此整句話的含意即 : 宣告一個公開的 MainActivity 類別 這個 MainActivity 類別繼承了程式開頭導入的 Activity 類別 {} 大括號規範了一個程式區塊 大括號中的程式表達的這個程式區塊的主要內容 第 7 行 : /** Called when the activity is first created. */ 第 7 行提供了位於其下的函式的註釋 /* */ 是 Java 語言的多行註解符號, 位於其中的文字內容不會被編譯 /* 敘述後多出來的一個 * 號被視為內文 順便提醒一下,Java 程式語言中兩個斜線 // 表示的是單行註解符號 單行註解符號 // 與多行註解符號 /* */ 不同的地方是, 只有與 // 符號同行的文字才不會被編譯 第 8-9, 12 行 public void oncreate(bundle savedinstancestate) { } 第 9 行開始了這個方法 (Method) 的主體 其組成是這樣的 : public void oncreate(bundle savedinstancestate) { } oncreate 是這個方法的名稱 void 則是宣告了這個方法的回傳值的型別 (type) public 關鍵字是用來修飾 oncreate 這個方法 表示 oncreate 是個 公開 的方法, 可以由 MainActivity 類別外部取用 方法的回傳值的型別, 即是這個方法的型別 oncreate 這個方法使用 void 型別, 表示 oncreate 這個方法不需回傳值 同時, 這個方法傳入了一個名為 savedinstancestate 的 Bundle 型別參數, Bundle 型別正是來自我們前面所導入的 Package 之一 我們並不需要知道太多 Bundle 型別或 savedinstancestate 實體的細節, 只要知道 Bundle 的內容與手機平台的記憶體管理有關 當 Android 應用程式啟動 換到背景等待 關閉時, 都會用到 savedinstancestate 這個實體來處理記憶體相關的事宜 當然, 你也可以用其他名稱來代替它 還好 oncreate 這個方法永遠都是傳入 Bundle savedinstancestate 這個參數, 寫應用程式時只要正確照規定傳入即可, 你可以不用太去在意它

19 Bundle 可以保存程式上一次關閉 ( 凍結 ) 時的狀態 你可以透過覆寫 onfreeze 方法 ( 與 oncreate 方法的作用類似 ) 來保存凍結前的狀態 當程式啟動 (Activity 重新初始化 ) 時, 會再次呼叫 oncreate 方法, 你就能從 savedinstancestate 中得到前一次凍結的狀態 我們也可以透過 Bundle 來將這個 Activity 的內容傳到下一個 Activity 中 {} 大括號規範了一個程式區塊 大括號中的程式表達 oncreate public void oncreate(bundle savedinstancestate) 從前面的講解中, 我們學到了在任何一個 Android 專案目錄裡, 只要打開 Referenced Libraries 目錄的 android.app 分類, 都可以找到 Activity.class 這個類別 現在我們再深入一些查看 Activity.class 類別 你要做的, 只是依照圖示, 找到 Android 工具中的 Referenced Libraries 目錄, 從 android.app 分類裡找到 Activity.class 類別, 並按下 Activity.class 類別左側的三角形圖示, 如此即可展開這個類別的屬性 / 方法列表 19 我們在 Activity 類別的屬性 / 方法列表中, 發現了現在正要講解的 oncreate 方法 (Method) 因為 MainActivity 類別繼承自 Activity 類別, 所以預設 MainActivity 類別中其實已經有 oncreate 方法了 事實上, oncreate 方法正是每個 Activity 開頭的語句表示裝飾子 (decorator) 語句的作用是告訴程式我們要覆寫這個 oncreate 方法 當我們打開程式時, 程式不再使用從 MainActivity 類別中繼承來的 oncreate 方法, public void oncreate(bundle savedinstancestate) { } 我們講解了整段程式, 其含意是 覆寫 MainActivity 類別中公開的 oncreate 方法 這個 oncreate 方法無回傳值型別, 而且這個方法傳入了一個名為 savedinstancestate 的 Bundle 型別參數 現在來看看 oncreate 方法中包含的程式內容 第 10, 11 行 : super.oncreate(savedinstancestate); super 是關鍵字 代表著這個 MainActivity 類別的上層類別 (Activity) super.oncreate(savedinstancestate); 的意思就是 : 執行 Activity 類別中 oncreate 方法的內容 這麼做的目的是什麼呢? Google Android 將其應用程式的介面稱為視圖 (View), 而負責控制各種動作行為的程式主體 (Controller), 則稱為活動 (Activity) 因此一個 Android 應用程式, 必定會對應到一個以上的 Activity oncreate 方法則是每個 Activity 類別初始化時都會去呼叫的方法 我們想做的事, 是保持原本 oncreate 方法預設的動作, 然後在其中加入我們想要的內容 而 Android 產生的程式預設卻覆載 (@Override) 了 MainActivity 類別的 oncreate 方法 原本繼承自 Activity 類別的 oncreate 方法, 其原本內容都被覆載掉了 因此想將原本的 oncreate 方法內容保留, 並在其中加入我們的內容的話, 就要使用 super 語句 當程式運行到我們覆寫的 oncreate 方法時, 透過 super.oncreate(savedinstancestate); 語句, 會先將原本 Activity 類別中的 oncreate 方法執行一次, 然後再執行我們覆寫的 oncreate 方法裡面其他的程式內容

20 我們要執行原本的 oncreate 方法時, 仍然需要提供原本 oncreate 方法所需的傳入參數 因此 super.oncreate(savedinstancestate); 語句中, 我們將 savedinstancestate 這個參數傳入原本的 oncreate 函式中 savedinstancestate 是我們在 public void oncreate(bundle savedinstancestate) 語句中所宣告的傳入參數 setcontentview(r.layout. activity_main); 透過螢幕顯示的各種元素是按照介面層次結構來描述的 要將一個顯示元素的層次結構轉換顯示到一個螢幕上,Activity 會呼叫它用來設定 View 的 setcontentview 方法, 並傳入想引用的 XML 描述文件 當 Activity 被啟動並需要顯示到螢幕上時, 系統會通知 Activity, 並根據引用的 XML 文件敘述來描繪出使用者介面 上一章中我們定義好的 res/layout/ activity_main.xml 描述檔, 就是透過這個機制繪出到螢幕上 6-2 完整 BMI 程式 20 完整的程式如下 : 1 package com.demo.android.bmi; 2 3 import java.text.decimalformat; 4 5 import android.app.activity; 6 import android.os.bundle; 7 import android.view.view; 8 import android.view.view.onclicklistener; 9 import android.widget.button; 10 import android.widget.edittext; 11 import android.widget.textview; public class MainActivity extends Activity { 14 /** Called when the activity is first created. */ 16 public void oncreate(bundle savedinstancestate) { 17 super.oncreate(savedinstancestate); 18 setcontentview(r.layout.activity_main); //Listen for button clicks 21 Button button = (Button)findViewById(R.id.submit); 22 button.setonclicklistener(calcbmi); 23 } private OnClickListener calcbmi = new OnClickListener() 26 { 27 public void onclick(view v) 28 { 29 DecimalFormat nf = new DecimalFormat("0.00"); 30 EditText fieldheight = (EditText)findViewById(R.id.height); 31 EditText fieldweight = (EditText)findViewById(R.id.weight); 32 double height = Double.parseDouble(fieldheight.getText().toString())/100; 33 double weight = Double.parseDouble(fieldweight.getText().toString()); 34 double BMI = weight / (height * height); TextView result = (TextView)findViewById(R.id.result); 37 result.settext("your BMI is "+nf.format(bmi)); //Give health advice 40 TextView fieldsuggest = (TextView)findViewById(R.id.suggest); 41 if(bmi>25){ 42 fieldsuggest.settext(r.string.advice_heavy);

21 43 }else if(bmi<20){ 44 fieldsuggest.settext(r.string.advice_light); 45 }else{ 46 fieldsuggest.settext(r.string.advice_average); 47 } 48 } 49 }; 50 } 我們會學到 : 導入其他用到的模組 如何取得介面元件 如何對按鈕設定動作 從上面的完整程式中, 我們看到上面介紹到的程式主體都還在, 不過也增加了一些內容 這些內容即我們的主要程式邏輯 講解 21 //Listen for button clicks 兩個反斜線是 java 語言所支援的另一種註解方式 按鈕 Button button = (Button)findViewById(R.id.submit); 宣告一個 button 實體, 透過 findviewbyid 方法, 從資源檔中取得對應的介面元件 ( 按鈕 ) 這邊取出的是 R.id.submit 按鈕元件 R.id.submit 對應到 XML 描述檔的資源是 <Button id="@+id/submit" /> 為了確保宣告的型別跟 XML 描述檔中描述的介面元件型別一致, 好使程式運作正常, 我們在 findviewbyid 方法前加上 (Button) 修飾, 強制將取得的資源型別設成 button 型別 button.setonclicklistener(calcbmi); 這句包含了 Button 類別中的 setonclicklistener 方法 方法中傳入了一個 calcbmi 函式 Android 系統的 UI 互動方式採用常見的事件驅動方式 也就是當使用者按下 button 按鈕的時候,Android 系統會去觸發按鈕的 setonclicklistener 方法中所指定的 calcbmi 函式 觸發事件函式 private OnClickListener calcbmi = new OnClickListener() { public void onclick(view v) { } }; 範例中所有的邏輯與運算內容, 都放置在這個事件函式中 當使用者按下按鈕時, 即觸發 OnClickListener 類型的事件函式 也有人將這種函式稱為回呼 (Call Back) 函式, 因為是當有動作做完 ( 使用者按下了按鈕 ), 才會呼叫 ( 算出 BMI 值 ) onclick(view v) 是 OnClickListener 中實作的方法, 代表按下按鈕時會執行的事件方法

22 編輯欄位 EditText fieldheight = (EditText)findViewById(R.id.height); EditText fieldweight = (EditText)findViewById(R.id.weight); 與上面 button 的宣告類似, 只是改成宣告 EditText 實體, 透過 findviewbyid 方法, 從資源檔中取得對應的文字欄位元件 這邊取出的是 R.id.height 和 R.id.weight 文字欄位元件 運算 double height = Double.parseDouble(fieldheight.getText().toString())/100; double weight = Double.parseDouble(fieldweight.getText().toString()); double BMI = weight / (height * height); BMI 值的算法是 體重除以身高的平方 用計算式來表示, 就是 22 體重 (weight) / 身高 (height)* 身高 (height) 這麼看來, 上面的程式碼就很清晰了 我們先從身高欄位 (fieldheight) 體重欄位 (fieldweight) 中取得使用者輸入的身高體重數字, 再定義一個雙倍精度幅點數 (double) 型態的變數 BMI 來儲存運算的結果, 因此,BMI 變數中儲存了運算出來的實際 BMI 值 顯示結果 我們把 BMI 值運算出來了, 接著要將結果顯示回螢幕上 TextView result = (TextView)findViewById(R.id.result); 為了將結果顯示到螢幕上, 在之前 XML 定義檔中我們已經預留了一個名為 result 的 TextView 欄位 在程式碼中, 我們再宣告一個 TextView 實體, 透過 findviewbyid 方法, 從資源檔中取得對應的介面元件 ( 文字顯示 ) 這邊取出的就是 R.id.result 介面元件 DecimalFormat nf = new DecimalFormat("0.00"); result.settext("your BMI is "+nf.format(bmi)); 透過 java 內建的 DecimalFormat 函式, 我們可以將運算結果, 以適當的格式顯示 透過 settext 方法, 我們可以將指定的字串, 顯示在螢幕上文字類型的介面元件中 顯示建議 顯示建議 的方式與 顯示結果 完全相同, 只有多加了幾個 if 判斷式 : 當 BMI 值大於 25 顯示過重, 小於 20 顯示過輕 程式碼留給讀者自習 //Give health advice TextView fieldsuggest = (TextView)findViewById(R.id.suggest); if(bmi>25){ fieldsuggest.settext(r.string.advice_heavy); }else if(bmi<20){ fieldsuggest.settext(r.string.advice_light); }else{ fieldsuggest.settext(r.string.advice_average); } 完整的 BMI 程式動作流程, 就是使用者在身高體重欄位中輸入好身高體重後, 按下 計算 BMI 值 按鈕, 程式根據識別符號, 從對應的身高體重欄位讀取輸入的值, 並做計算, 最後將計算的結果與建議顯示到螢幕上

23 Unit 7 更改 App 圖示 更改背景圖 1. 上網下載或利用繪圖工具自行繪製圖示 (icon) 背景圖 (background) 大小依虛擬裝置 (AVD) 的螢幕尺寸而定 儲存於 <res/drawable/hdpi> 資料夾中 2. 修改圖示 (icon) 設定 [1] 開啟 Android 應用程式清單檔 <AndroidManifest.xml> [2] 在 <application 中加入 android:icon 屬性設定 android:icon="@drawable/bmi_icon" 23 其中 bmi_icon 為 icon 圖檔名稱 <application android:allowbackup="true" android:icon="@drawable/bmi_icon" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.example.bmi.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> 3. 修改背景圖設定 [1] 開啟欲修改的 layout 檔, 例如 : <layout / activity_main.xml> [2] 在以下程式碼加入一個背景屬性 android:background="@drawable/back01" 其中,back01 是背景圖檔的名稱, 不需加.png 或.jpg <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/back01" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".mainactivity" > 練習 :Anny s 教學資源網中下載 image.rar, 解壓縮, 並 copy 至 workspace/bmi/res/drawable/hdpi 設定 icon, 並修改 Activity 的 background images

24 Unit 8 發佈應用程式到實體裝置 Android Market 的運作方式 Android Market 的運作方式如下 : 1. 開發者可以將自己寫好的軟體上傳到 Android Market 中 2. 開發者透過 Android Market 販賣軟體的 30% 收入, 得分給電信商跟電子收費商 ( 如手機月費帳單或 Google Checkout 等 ), 所以開發者可以拿到應用程式定價的 70% 3. 註冊為 Android Market Developer 要收美金 25 元的 入場費 推測可能是種為了保證 Android Market 上應用程式的質量, 也為了促使開發者寫一點收費軟體, 好讓電信商有得分成的策略 24 註冊 Android Market 前往 畫面右上角有一段 Interested in having your application in Android Market? 敘述, 按下其下方的 learn more 按鈕, 即可開始註冊成為 Android 開發者 開發者用的網址是 開發者可以透過 Android Market 發佈 Android 應用程式 首先, 開發者得註冊一個 Google 帳號 然後使用 (Google Checkout) 以信用卡付出 $25 美元的註冊費用 最後得同意 Android Market 的使用授權協議 註冊一個 Google 帳號不難, 相信大部分讀者都已經擁有一個 Google 帳號 在申請 Android Market 時要填入加上國碼的手機號碼 台灣加上國碼的手機號碼為 +8869xxxxxxxx 886 是國碼, 加上一個 0 之後, 09xxxxxxxx 是你的手機號碼 + 則是 加上國碼的手機號碼 表示方式 接著按下 Google Checkout 圖示, 如果沒有 Google Checkout 的話, 也需作先設定 一切完成後在 Google Checkout 中勾選 I agree and I am willing to associate my credit card and account registration above with the Android Market Developer Distribution Agreement. 畫面會出現 等待信用卡認證的訊息, 並有 Google Checkout 的確認函寄到我們設定的電子信箱中 接著想要繼續登錄開發者網頁時, 會發現這個網頁似乎壞掉了 其實是等待信用卡認證完成, 需要一點時間 ( 一兩個鐘頭 ), 等認證好, 完成付款程序後, 網頁就能再次開啟 開啟後會出現 Your Registration to the Android Market is approved! You can now upload and publish software to the Android Market. ( 已經註冊完成 ) 訊息 以後點擊 Android Market 網頁右上角的按鈕時, 就會進入開發者面板 (Developer Console) 頁面 在開發者面板畫面的左上角是開發者的暱稱 暱稱旁邊可以選擇 Edit profile» ( 編輯個人資料 ) 來編輯之前填入的 Android Market Developer 資訊 上傳應用程式到 Android Market 選擇右下角的 Upload Application ( 上傳應用程式 ) 按鈕, 出現應用程式上傳畫面 各個欄位的作用都寫的很明白, 也可以為應用程式自行定價

25 Android Market 上所有的程式可分為 應用程式 與 遊戲 兩大類 選擇好大分類後, 其下會出現各自可選的子分類 在 Upload assets 區塊中, 點選 Application.apk file 旁的 瀏覽... 按鈕, 就可以上傳已經簽署好金鑰的.apk 程式 APK 檔案 (Android Application Package) 所謂的 APK 檔 (Android application package) 是一個包含程式本身以及相關的資源檔所形成的檔案 程式開發完了, 也在手機模擬器跑過沒問題了, 可是我能不能把開發好的程式安裝到真實的手機上呢? 想把開發好的程式安裝到手機上分成兩個主要的步驟, 一個是將成是打包成 APK(Android application package), 然後利用 USB 或者上傳到 Android Market 來安裝 25 產生 APK 檔的步驟 : 1. 開啟程式的專案, 點選 File --> Export, 然後如下畫面選擇 Export Android Application 之後, 按 "Next>" 按鈕 2. 為了確保降低資訊安全上的顧慮 ( 例如, 內含病毒碼 ),Google 要求所有的 apk 檔都必須經過電子簽章簽署之後, 才能被使用 雖然有了電子簽章的機制可以比較容易保證不會有惡意的第三者 ( 有興趣的讀者, 請自行參考資訊安全相關的文件 ), 但是並不能保證 apk 檔案內不包含病毒碼 ; 實際上, 過去已經發生過惡意的程式在 Android Market 上出現, 但是這些程式也被 Google 移除下架 由於要產生必要的電子簽章, 所以如果你在 Eclipse 下是第一次產生 APK 檔, 那麼你必須如以下畫面般產生新的 "key store"; 第二次以後, 只需要使用現有的 key store 即可

26 26 3. 產生 key store 的步驟如下 : 請在如下的畫面中, 輸入任意但是好記的 alias 名稱 ; 一個 key store 中可以有多個 alias, 而一個 alias 大概可以想成是一個電子簽章, 因此除了密碼的部分是在作必要的保護之外, 其它就填入代表你或者你的單位的相關資料 4. 如下圖所示, 請選擇產生的 APK 檔所放置的地點後, 按下 "Finish" 按鈕之後產生 apk 檔

27 27 5. 有了 apk 檔, 就可以寄到信箱, 或放在雲端硬碟分享連結網址, 即可安裝在 Android 行動裝置中 解除安裝程式 一般來說, 官方提供的應用程式是無法解除安裝的 可以解除安裝的程式, 都是屬於使用者自行安裝的 ; 解除安裝的方式有下列兩種 : 1. 在手機上, 依序執行 " 設定 " --> 應用程式 --> 管理應用程式, 然後選取希望解除安裝的程式進行解除安裝 2. 如果是從 Market 下載的, 也可以從 Market 中的 " 我的應用程式 " 中解除安裝

28 Unit 9 建立新新的活動 (Activity) 28 圖片片來源 : Android Activity 直觀觀來看, 每個 Activity 通常常會負責處理理一個螢幕的內內容 ( 包含介介面 選單 彈彈出對話框 程式 動作作等 ) 當我們們需要從一個螢螢幕畫面切換換到另一個螢螢幕畫面的時候, 就涉及到到了 Activity 切換 的動動作 我們可可以將 Activity 看成 MVCC 模式中的 Control Activity 負責管理理 UI, 並接接受事 件觸觸發 以是是否需要與其他 Activity 交換資料來區區分,Activity 可以粗分為兩兩種類型 : 獨立的 Activity 與 相依的 Activity 不同類型的 Activity, 其動作也也不盡相同 : 獨立的 Activity 獨立立的 Activity 是不需要從其其他地方取得得資料的 Activity 只是單純純的從一個螢幕螢幕跳到下個螢螢幕, 不涉涉及資料的交換換 從一個獨立的 Activity 呼叫另一一個獨立的 Activity A 時, 我我們只要填好 Inten 的內容和動動作, 使用 startactivity 函式呼叫, 即可喚起獨立立的 Activity 相依的 Activity 相依依的 Activity 是需要與其他 Activity 交換資料的一種 Activity 相相依的 Activity 又可再分分為單 向與與雙向 從一個個螢幕跳到下下個螢幕時, 攜帶資料供下下一個螢幕 ( Activity) 使用用, 就是單向向相依 的 Activity; 要在在兩個螢幕之間間切換, 螢幕幕上的資料會會因另一個螢幕幕的操作而改改變的, 就是雙雙向 相依依的 Activity 與獨立的 Activity 比起起來, 相依的 Activity 變化化更加精采 獨立立的 Activity 要完完成獨立的 Activity 的動作, 我們要做做幾件事 : 1. 在程式碼 (src) 中建立立新 Activity 類別檔案 (.java) 2. Layout 中建立新的頁面面配置檔 (.xml) 3. AndroidManifest 清單單中新增 Activity 描述 4. 在原 Activity 類別中中加入 startactivity 函式

29 Step1: 建立新的 Activity 類別檔案 1. 首先, 使用 Navigator 檔案瀏覽視窗, 切換到 src/com/demo/android/bmi 資料夾 在 bmi 資料夾中, 現存有 MainActivity.java 與 R.java 兩個檔案 我們準備在此建立一個新的 Activity 類別檔案 2. 在 bmi 資料夾圖示上按右鍵, 選擇 New->Class 選項 Eclipse 會跳出一個 New Java Class 對話框 3. 在對話框中的 Name 一欄上填入 ReportActivity Report 的字頭需大寫, 這是 Java 程式語言的默認規則 4. 在 Superclass 一欄右方, 按下 Browse...,Eclipse 會跳出 Superclass Selection 對話框 在對話框中的 Choose a type 欄位中輸入 activity, 輸入框下方的 Matching items 欄位中, 會顯示出所有可能的類別 我們選擇 Activity - android.app -... 這個選項, 點擊右下方的 ok 按鈕, 回到上一個對話框 5. 此時, Superclass 欄位中將填入 android.app.activity 訊息 按下對話框右下角的 Finish 鍵,Eclipse 會在 bmi 資料夾中, 產生一個對應的 ReportActivity.java 檔案 29 剛產生 ( 尚未修改過的 ) 的 ReportActivity.java 檔案如下 : 1 package com.demo.android.bmi; 2 3 import android.app.activity; 4 5 public class ReportActivity extends Activity { 6 7 } Android 程式碼的基本架構, 即 XML 描述檔與程式碼兩個主要組成部分 稍後我們要處理建立新程式碼的相關工作, 包含定義對應的 XML 描述檔, 與在程式碼中, 填入這個 class 的內涵 Step2: Layout 中建立新的頁面配置檔 (.xml) 1. 在 res/layout 中新增一個 activity_report.xml 檔案: 按右鍵選 new/android XML File 選項, 開啟 Android XML 檔案產生精靈 新增一個 XML 版面配置檔 2. Resource Type: Layout File: 填入 activity_report Root Element: RelativeLayout, 按 Finish 如此, 即產生 activity_report.xml 檔 3. 把 xml 檔案複製一份過來 : 1 <RelativeLayout xmlns:android=" 2 xmlns:tools=" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingbottom="@dimen/activity_vertical_margin" 6 android:paddingleft="@dimen/activity_horizontal_margin" 7 android:paddingright="@dimen/activity_horizontal_margin" 8 android:paddingtop="@dimen/activity_vertical_margin" 9 tools:context=".mainactivity" > <TextView 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" 14 android:text="@string/hello_world" /> </RelativeLayout>

30 4. 打開 src/com/demo/android/bmi/reportactivity.java, 把預設的程式碼複製進來 : 1 package com.demo.android.bmi; 2 3 import android.app.activity; 4 import android.os.bundle; 5 6 public class ReportActivity extends Activity { 7 /** Called when the activity is first created. */ 9 public void oncreate(bundle savedinstancestate) { 10 super.oncreate(savedinstancestate); 11 setcontentview(r.layout. activity_main); 12 } 13 } 30 上面的程式碼中, 我們將 setcontentview(r.layout. activity_main); 換成了 : setcontentview(r.layout. activity_report); 以對應我們新定義的 XML 描述檔產生的資源識別符號 Step 3: AndroidManifest 清單中新增 Activity 描述 5. 打開 AndroidManifest.xml 檔案, 定義 AndroidManifest.xml 清單檔案可以在原本的 AndroidManifest.xml 檔案中直接修改原始碼, 加入如下敘述 : <activity android:name="reportactivity"></activity> 修改 Report 頁面標題文字 如果希望在打開 Report Activity 頁面時, 標題欄上的文字將會是 BMI 報告, 而不是預設跟 Activity 名稱相同的 Report, 我們可以在清單裡的 report activity 標籤中, 加入標籤 (label) 屬性的描述 步驟如下 6. 在 res/values/ 目錄下, 新建一個 report.xml 描述檔, 存放 Report 活動頁面用到的字串 檔案內容如下 : <?xml version="1.0" encoding="utf-8"?> <resources> <string name="report_title">bmi 報告 </string> </resources> 7. 有了描述檔後, 我們可以再修改 AndroidManifest.xml 清單, 為 ReportActivity 添加標籤 (label) 屬性 : <activity android:name="reportactivity" android:label="@string/report_title"></activity>

31 Step4: 原 Activity 類別中加入 startactivity 函式 在準備好相關資源 並在 AndroidManifest.xml 清單添加新 activity 描述後, 來到實際控制整個程式流程的程式碼部份 在程式碼中, 要把原本按下按鈕即開始計算, 並顯示 Bmi 值到同一螢幕的按鈕動作, 改成按下按鈕後跳轉到 Report 這個 Activity 首先修改 MainActivity 這個 Activity 打開 src/com/demo/android/bmi/ MainActivity.java 檔案, 修改 OnClickListener 函式 ( 定義按下按鈕時做的動作 ) 的內容 按下按鈕後從 MainActivity 切換 ( 跳轉 ) 到 ReportActivity 的程式片段如下 : 1 private Button.OnClickListener calcbmi = new Button.OnClickListener() 2 { 3 public void onclick(view v) 4 { 5 //Switch to report page 6 Intent intent = new Intent(); 7 intent.setclass(mainactivity.this, ReportActivity.class); 8 startactivity(intent); 9 } 10 }; 31 修改好後, 開啟 Android 模擬器 當我們按下 計算 BMI 值 按鈕後, 螢幕會切換到 Hello World, Bmi 頁面 ( 已經進入了 ReportActivity) 在這個頁面上, 我們並沒有辦法可以直接回到前一個頁面, 因為這兩個頁面都是獨立的 Activity 但我們還是可以透過按下硬體的 Undo 鍵, 使螢幕切換回原本輸入身高體重的頁面 ( 即回到 Main Activity) 講解 Intent intent = new Intent(); 我們建立一個新的 意圖 (Intent) 實體 intent.setclass(mainactivity.this, ReportActivity.class); 為這個意圖指定來源的 Activity 所在 class(mainactivity.class), 與要前往的 Activity 所在的 class(reportactivity.class) startactivity(intent); 將定義好的 intent 傳入 startactivity 函式中 startactivity 函式會將 intent 傳入 Android 框架,Android 框架會根據各應用程式在系統中註冊的資料 ( 有沒有聯想到我們剛剛為 ReportActivity 增加的 activity 清單描述?), 找出 ReportActivity, 並呼叫它

32 Unit 10 傳送資料到新的活動 -- Intent Intent 是一個動作與內容的集合 Intent 像是一串網址, 傳送到系統並意圖靠其他 Activity 來處理網址中所指定的動作跟內容 Android 使用 Intent 來完成在螢幕間切換的動作 ( 獨立的 Activity) Intent 包含 Activity 間切換所需的動作 分類 傳送資料等訊息, 就像是 Activity 之間的宅急便一樣 要完成在 Activity 之間透過 Intent 傳送資訊的動作, 可以分成 傳遞資訊 與 接收資訊 兩部分 使用 Intent 傳遞資訊 上一單元新增了一個 Report Activity 頁面, 但是還沒有為新頁面填入實值內容 本單元會完成將 BMI 應用程式從一個頁面改寫成為兩個頁面 : 輸入頁面 ( 原本的 MainActivity), 與 結果頁面 (ReportActivity) 的應用程式 輸入頁面 從介面上取得身高 體重值, 透過傳送 Intent, 將值攜帶到 結果頁面 結果頁面 從 Intent 中取出其攜帶的身高 體重值, 用這兩個參數來產生 BMI 報告結果 32 打開 src/com/demo/android/bmi/mainactivity.java, 修改 Button.OnClickListener 函式 : 1 private Button.OnClickListener calcbmi = new Button.OnClickListener() 2 { 3 public void onclick(view v) 4 { 5 //Switch to report page 6 Intent intent = new Intent(); 7 intent.setclass(mainactivity.this, ReportActivity.class); 8 Bundle bundle = new Bundle(); 9 bundle.putstring("key_height", field_height.gettext().tostring()); 10 bundle.putstring("key_weight", field_weight.gettext().tostring()); 11 intent.putextras(bundle); 12 startactivity(intent); 13 } 14 }; 講解 Intent intent = new Intent(); intent.setclass(mainactivity.this, ReportActivity.class);... startactivity(intent); 這段程式碼的作用是透過 Intent 通知系統 (Android 框架 ): 我們將要從 MainActivity 這個頁面 ( 輸入頁面 ) 前往 Report Activity 頁面 ( 結果頁面 ) 如果把我們多加的用來附加資料的程式碼拿掉, 這段程式碼即原來獨立的 Activity 的程式碼 Bundle bundle = new Bundle();... intent.putextras(bundle); 相依的 Activity 與獨立的 Activity 不同之處, 就在於相依的 Activity 會附帶傳送額外資訊到新的 Activity 這些額外資訊都是靠著 Intent 物件來攜帶的 傳送 intent 時, 我們可以在其上附加一些訊息, 比如說本例中我們從輸入介面中取出了的身高 體重值, 要將身高 體重值傳送給 ReportActivity 後作計算 這些附加在 Intent 上的訊息都儲存在 Bundle 物件中 透過 intent.putextras(bundle) 敘述, 我們將 bundle 物件附加在 Intent 上, 隨著 Intent 送出而送出

33 bundle.putstring("key_height", field_height.gettext().tostring()); bundle.putstring("key_weight", field_weight.gettext().tostring()); 這段程式是實際用來附加資料的程式碼 將使用者輸入的身高 體重值, 儲存到 bundle 物件中 Bundle 其實是一種特別定義的映射 (map) 型別 KEY_HEIGHT KEY_WEIGHT 是為儲存在 bundle 物件中的身高 體重值所指定的 識別符號 在這邊, 直接把身高 體重值都儲存成字串 因為整個程式都是我們控制, 到時候在接收的 Activity 一端, 再透過 KEY_HEIGHT KEY_WEIGHT 這兩個 識別符號 來取得實際的身高 體重值 讀出的值也是字串, 等值讀出來以後, 再去做型別轉換就好了 當然你也可以直接把身高 體重值存成數字 Bundle 型別額外提供了很多 API 在傳送 Intent 時, 使用 Bundle 型別的物件來攜帶資料, 相當方便 33 使用 Intent 接收資訊 在使用 Intent 接收資訊前, 我們先來加上 Report 這個 Activity 的介面 相關工作 打開 res/values/report.xml 檔案, 修改如下 : <?xml version="1.0" encoding="utf-8"?> <resources> <string name="report_title">bmi 報告 </string> <string name="report_back"> 前一頁 </string> </resources> 打開 res/layout/activity_report.xml 檔案, 修改如下 : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/result" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> <TextView android:id="@+id/suggest" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> <Button android:id="@+id/report_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/report_back" /> </LinearLayout> 這時打開 Eclipse 開發環境的 layout 檢視, 或是執行模擬器, 我們可以看到一個 前一頁 按鈕, 按鈕前其實還有兩個沒有內容的 TextView 介面元件, 下一節中我們將在 ReportActivity 中取得從 MainActivity 傳過來的身高體重資料, 根據這些資料產生報告資訊

34 在 Activity 中解開資訊用作接收 Intent, 透過 Intent 攜帶的資訊來計算出 BMI 值的 src/com/demo/android/bmi/reportactivity.java 完整程式碼如下 : 1 package com.demo.android.bmi; 2 3 import java.text.decimalformat; 4 import android.app.activity; 5 import android.os.bundle; 6 import android.view.view; 7 import android.widget.button; 8 import android.widget.textview; 9 10 public class ReportActivity extends Activity { 11 /** Called when the activity is first created. */ 13 public void oncreate(bundle savedinstancestate) { 14 super.oncreate(savedinstancestate); 15 setcontentview(r.layout.report); 16 findviews(); 17 showresults(); 18 setlistensers(); 19 } private Button button_back; 22 private TextView view_result; 23 private TextView view_suggest; private void findviews() 26 { 27 button_back = (Button) findviewbyid(r.id.report_back); 28 view_result = (TextView) findviewbyid(r.id.result); 29 view_suggest = (TextView) findviewbyid(r.id.suggest); 30 } //Listen for button clicks 33 private void setlistensers() { 34 button_back.setonclicklistener(backmain); 35 } private Button.OnClickListener backmain = new Button.OnClickListener() 38 { 39 public void onclick(view v) 40 { 41 // Close this Activity 42 Report.this.finish(); 43 } 44 }; private void showresults() { 47 DecimalFormat nf = new DecimalFormat("0.00"); Bundle bundle = this.getintent().getextras(); 50 double height = Double.parseDouble(bundle.getString("KEY_HEIGHT"))/100; 51 double weight = Double.parseDouble(bundle.getString("KEY_WEIGHT")); 52 double BMI = weight / (height * height); 53 view_result.settext(getstring(r.string.bmi_result) +nf.format(bmi)); //Give health advice 56 if(bmi>25){ 57 view_suggest.settext(r.string.advice_heavy); 58 }else if(bmi<20){ 59 view_suggest.settext(r.string.advice_light); 34

35 60 }else{ 61 view_suggest.settext(r.string.advice_average); 62 } } 65 } 講解 整個程式的架構我們在 完成 BMI 程式 與 重構程式 兩章中已經詳細說明過了 Bundle bundle = this.getintent().getextras(); 當我們透過 Intent 傳到新的 Activity 後, 只要使用 Activity.getIntent() 函數, 就可以得到傳來的 Intent 物件 然後使用 getextras 函式, 就能取得附加在 Intent 上的 bundle 物件 35 double height = Double.parseDouble(bundle.getString("KEY_HEIGHT"))/100; double weight = Double.parseDouble(bundle.getString("KEY_WEIGHT")); 在當前的 Activity 取得了 bundle 物件後, 我們可以透過指定儲存在 bundle 物件中的身高 體重值的識別符號 KEY_HEIGHT KEY_WEIGHT 來取出身高 體重值的資料 由於我們傳參數值來時, 所使用的是是字串格式, 所以我們在此得做個型別轉換, 將參數從字串轉換成雙倍精度浮點數 (Double) 型別 private Button.OnClickListener backmain = new Button.OnClickListener() { }; public void onclick(view v) { } // Close this Activity Report.this.finish(); 當按下 backmain 按鈕元件後, 結束 ReportActivity, 顯示出原本的 MainActivity

PowerPoint 簡報

PowerPoint 簡報 UI 設計 Android 專案目錄架構 Android 專案建立後會自動產生 3 個主要目錄 src:java 程式檔案 res: 資源 ( 文字 圖形 聲音檔案等 ) 與 UI 設定有關的 layout 檔 此目錄內檔案名稱只能為小寫字母 數字 _. gen:r.java 根據 res 目錄內容自動產生 不要去修改 R.java Android 中所有的資源檔案 ( 圖片 XML 等 ) 命名都必須使用英文小寫,

More information

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

Microsoft Word - 第1章 Android基本概念.docx

Microsoft Word - 第1章 Android基本概念.docx Android 系 统 下 Java 编 程 详 解 作 者 : 华 清 远 见 第 1 章 Android 基 本 概 念 本 章 简 介 本 章 主 要 介 绍 Android 基 本 概 念 方 面 的 内 容, 包 括 Android 平 台 特 性 Android 系 统 架 构 Android 开 发 框 架 和 Android 开 发 环 境 搭 建 1.1 Android 简 介 Android

More information

Microsoft Word zw

Microsoft Word zw 第 1 章 Android 概述 学习目标 : Android Android Android Studio Android Android APK 1.1 1. 智能手机的定义 Smartphone 2. 智能手机的发展 1973 4 3 PC IBM 1994 IBM Simon PDA PDA Zaurus OS 1996 Nokia 9000 Communicator Nokia 9000

More information

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Outlines for Today Future Planning Review System Architecture Dev. Tools & Making the First App Project Structure & File Details Application

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Microsoft Word - 02.目錄.doc

Microsoft Word - 02.目錄.doc 目錄 -1- 目錄 序 準備篇 一 使用說明... 0-2 二 標示說明... 0-6 三 注意事項... 0-7 第一類 Android 基礎知識 -UI 設計及語法應用 101. 整存整付計算機... 1-2 102. 電費計算機... 1-8 103. 點餐系統... 1-18 104. 計算 BMI 值... 1-23 105. MENU 功能選單... 1-36 106. 畫廊展示...

More information

Dynamic Layout in Android

Dynamic Layout in Android Dynamic Layout in Android 建國科技大學資管系 饒瑞佶 2013/5 V1 Layout 多半都透過 res/layout/xml 格式設定來達成 Android 是 OOP, 所以可以動態產生 Layout 重點是 Layout 的階層關係 (Hierarchy) 需要處理對應事件 最後一樣用 setcontentview 加入 Layout 一 加入現有 Layout 中

More information

書面

書面 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 5.4 互動功能畫面 程式碼請參考附件-程式三 在進入互動頁面時 會執行setAllText()依寵物狀態數值來 設定狀態文字與頭像 並且依心情決定是否要不要播放音效 觸摸的區域 由於是自己寫的 view 所以並未透過xml來設置 而是透過Layut.addview()來動態新增

More information

untitled

untitled How to using M-Power Report API M-Power Report API 力 了 M-Power Report -- Java (Library) M-Power Report API 行 Java M-Power Report M-Power Report API ( 30 ) PDF/HTML/CSV/XLS JPEG/PNG/SVG 料 料 OutputStream

More information

iziggi

iziggi iziggi 1 1 iziggi-hd 2 iziggi-hd 4 IPEVO iziggi-hd 6 iziggi-hd 8 iziggi-hd 9 Whiteboard App USB 10 iziggi-hd 11 iziggi-hd Live View WiFi 11 12 LED 12 iziggi-hd 13 Apple TV AirPlay 13 14 15 iziggi-hd *

More information

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8 Smart TPM Rev. 1001 Smart TPM Ultra TPM Smart TPM TPM...3 1. BIOS... 3 2. Infineon TPM Smart TPM... 4 2.1. Infineon TPM...4 2.2. Smart TPM...4 3. TPM... 5 3.1. Smart TPM TPM...5 3.2. Advanced Mode...8

More information

Android Fragment

Android Fragment Android Fragment 建國科技大學資管系饒瑞佶 2017/10 V1 Android 3.0 後才支援 Fragment 解決部分 App 適應螢幕大小的問題 它類似於 Activity, 可以像 Activity 可以擁有自己的版面設計, 也和 Activity 一樣有自己的生命週期 ( 具備 oncreate() oncreateview() 與 onpause() 方法 ) LifeCycle

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

0511-Android程式之GPS應用_專題週記4

0511-Android程式之GPS應用_專題週記4 逢甲大學通訊工程學系專題研究 Android 程式之 GPS 應用 專題週記 0511 學生姓名 陳彥儒 D0035131 廖元譽 D0077791 指導老師 楊豐瑞老師繳交日期 2014.05.11 1 匯入 GoogleMap 1.1 取得授權步驟 目前進度 取得 Google 授權鑰匙 實作程式尚未成功 1.1.1 建立個人的 keystore 1.1.2 由個人的 keystore 查詢 SHA1

More information

Android Service

Android Service Android Service- 播放音樂 建國科技大學資管系 饒瑞佶 2013/7 V1 Android Service Service 是跟 Activity 並行 一個音樂播放程式若沒使用 Service, 即使按 home 鍵畫面離開之後, 音樂還是照播 如果再執行一次程式, 新撥放的音樂會跟先前撥放的一起撥, 最後程式就會出錯 執行中的程式完全看不到! 但是, 寫成 Service 就不同了

More information

The golden pins of the PCI card can be oxidized after months or years

The golden pins of the PCI card can be oxidized after months or years Q. 如何在 LabWindows/CVI 編譯 DAQ Card 程式? A: 請參考至下列步驟 : 步驟 1: 安裝驅動程式 1. 安裝 UniDAQ 驅動程式 UniDAQ 驅動程式下載位置 : CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/

More information

ShareText

ShareText 作者 : 林致宇 日期 :2012/1/23 問題 : 如何分享分享文字資訊給其它的應用程式? 解答 : 有時候我們可能會希望 我們的應用程式的資訊 能夠讓使用者分享出去, 讓使用者能夠將此資訊傳送簡訊給其好友或寄電子郵件的方式寄給其好友, 這份文件將示範如何寫出這樣的應用程式 本文件將產出兩個 App, 第一個 App 是 分享資料的來源, 名為 CopyPaste_Source, 功能非常簡單,

More information

Microsoft PowerPoint - 05.Android 介面元件-RelativeLayout、Button、TextVeiw、EditText

Microsoft PowerPoint - 05.Android 介面元件-RelativeLayout、Button、TextVeiw、EditText 計劃名稱 : 104 年度教育部資通訊軟體創新人才推升推廣計畫跨校資源中心 : 雲端運算 ( 國立中山大學 ) 課程名稱 : 網路及平台服務 Part1- 課程教材 教材名稱 :Android 介面元件 -RelativeLayout Button TextVeiw EditText 國立高雄大學資訊工程學系張保榮教授 大綱 RelativeLayout 版面配置 Button 版面配置 TextView

More information

Android Android Android SDK iv

Android Android Android SDK iv Android Market Google Android SDK Apple Google Microsoft b2c b 2010 Internet Android how why iii Android 240... Android Android SDK iv Android Market Google Android SDK Visual C++ Java N-tier J2EE Unix/Linux

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc) 作者 Amber 版本 1.0.0 日期 2012/04/25 頁數 1/7 如何使用 LED 燈顯示狀態? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 N/A N/A XP-8000-Atom 系列 WES2009 所有版本 N/A: Not applicable to this platform and OS. 注意! 欲變更系統的任何設定之前, 請先關閉

More information

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1 科 技 部 自 由 軟 體 專 案 原 始 程 式 碼 使 用 手 冊 Source Code Manual of NSC Open Source Project 可 信 賴 的 App 安 全 應 用 框 架 -App 應 用 服 務 可 移 轉 性 驗 證 Trusted App Framework -Transferability Verification on App MOST 102-2218-E-011-012

More information

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog 計劃名稱 : 104 年度教育部資通訊軟體創新人才推升推廣計畫跨校資源中心 : 雲端運算 ( 國立中山大學 ) 課程名稱 : 網路及平台服務 Part1- 課程教材 教材名稱 :Android 介面元件 -TableLayout Toast AlertDialog 國立高雄大學資訊工程學系張保榮教授 大綱 TableLayout 版面配置 Toast 版面配置 AlertDialog 版面配置 TableLayout

More information

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1 0 0 = 1 0 = 0 1 = 0 1 1 = 1 1 = 0 0 = 1 : = {0, 1} : 3 (,, ) = + (,, ) = + + (, ) = + (,,, ) = ( + )( + ) + ( + )( + ) + = + = = + + = + = ( + ) + = + ( + ) () = () ( + ) = + + = ( + )( + ) + = = + 0

More information

建立Android新專案

建立Android新專案 經濟部工業局 Android 智慧型手機程式設計實務應用班 Android WebService 建國科技大學資管系 饒瑞佶 2012/4 WebService 需要 ksoap2-android-assembly-2.5.2-jar-withdependencies.jar 或 ksoap2-android-assembly-2.5.2-jar-withdependencies_timeout1.jar

More information

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc Author WeiKai Version 1.0.0 Date 2013/4/14 Page 1/11 我如何在 XPAC 上建立一個 COM port 通訊程式 Applies to: Platform OS version XPAC utility version XPAC series All versions (WinCE6) All versions XPAC SDK 提供 XPAC 結合

More information

Autodesk Product Design Suite Standard 系統統需求 典型使用用者和工作流程 Autodesk Product Design Suite Standard 版本為為負責建立非凡凡產品的設計師師和工程師, 提供基本概念設計計和製圖工具, 以取得令人驚驚嘆

Autodesk Product Design Suite Standard 系統統需求 典型使用用者和工作流程 Autodesk Product Design Suite Standard 版本為為負責建立非凡凡產品的設計師師和工程師, 提供基本概念設計計和製圖工具, 以取得令人驚驚嘆 Autodesk Product Design Suite Standard 20122 系統統需求 典型使用用者和工作流程 Autodesk Product Design Suite Standard 版本為為負責建立非凡凡產品的設計師師和工程師, 提供基本概念設計計和製圖工具, 以取得令人驚驚嘆的產品設計計 Autodesk Product Design Suite Standard 版本中中包括以下軟體體產品

More information

目 錄 一 ANDROID 開發系統需求 作業系統 開發工具... 1 二 安裝 ANDROID 開發工具 安裝 JDK 使用 APT-GET 安裝 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 1

目 錄 一 ANDROID 開發系統需求 作業系統 開發工具... 1 二 安裝 ANDROID 開發工具 安裝 JDK 使用 APT-GET 安裝 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 1 Android On Linux 簡易安裝開發教學 Installing Google Android SDK 2.0.1 On Ubuntu 9.10 Desktop 目 錄 一 ANDROID 開發系統需求... 1 1. 作業系統... 1 2. 開發工具... 1 二 安裝 ANDROID 開發工具... 1 1. 安裝 JDK... 1 2. 使用 APT-GET 安裝... 2 3. 使用套件管理程式安裝...

More information

<A4E2BEF7B4FAB8D5B3F8A F52322E786C7378>

<A4E2BEF7B4FAB8D5B3F8A F52322E786C7378> 製表日期 : 2008 年 9 月 17 日 Mobile Java Applet 手機安裝測試報告表 已完成測試機型數量 :317 台 ; 無問題 ( 可安裝 / 可執行 ) 機型 :315 台無法使用 :2 台 ; 特殊註記機型 :2 台 廠牌 機型 測試狀況 OK 不 OK 安裝資料夾 ( 目錄 ) 備註 NOKIA N95 應用程式 NOKIA 6110 應用程式 NOKIA 3120 應用程式

More information

Lecture01_Android介绍

Lecture01_Android介绍 移动平台应用软件开发 Android 介绍 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年秋北京 Android是什么 Android不仅仅是一个操作系统 它更是一个完整的软件框 架 Android基于Linux内核 2005年Google公司收购了Android公司 Google公司选择使用Apache许可证开放Android源码

More information

Microsoft Word - Mail2000_SecurityPatch_

Microsoft Word - Mail2000_SecurityPatch_ Mail2000 安全性加強程式 網擎資訊軟體股份有限公司謹呈 1 Mail2000 安全性加強程式 Introduction Mail2000 安全性加強程式, 是針對 Mail2000 V4.0 以上版本, 包括 V4.0 及 V4.5 版本所提供, 以加強系統的安全性, 減少因惡意信件而引起的安全性問題 版本名稱 Mail2000 版本作業系統檔案名稱 V4.0 單一網域版本 V4.0 SDSS

More information

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class 踩地雷遊戲 高慧君南港高中 開啟專案 MineSweep 任務一 : 產生 30X20 個磚塊編輯 Table 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.util.arraylist; Write a description of class MyWorld

More information

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 : EditText 实现城市搜索 1801210778 邹宇航 摘要 : 使用 EditText 实现搜索城市的功能, 以此为依据更新 ListView 1. 效果图 : 2. 主要步骤 (1) 在 select-city.xml 布局文件中中添加 EditText 控件用作搜索框, 然后添加 ListView 控件用来显示城市名字内容 代码如下 : 预览图 : (2) 在 SelectCity.java

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

ActiveX Control

ActiveX Control ActiveX Control For Visual Basic 2005.NET [ 版本 : 1.0] 1 安裝 Windows 驅動程式 請依照下列步驟 : 1. 執行 Windows 驅動程式安裝程式 ( 此範例為 PIO-DIO) 驅動程式位置 : CD:\NAPDOS\PCI\PIO-DIO\dll_ocx\Driver http://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/pio-dio/dll_ocx/driver/

More information

深入浅出Android

深入浅出Android 深入浅出 Android 1 入门... 4 初探 ANDROID NDROID... 4 2008 年末最大的冲击...4 Android 是什么... 4 从创意开始...5 安装 ANDROID 开发工具... 7 InstallAndroid...7 安装流程...8 开启现有工程... 11 开启工程... 11 导入工程... 11 修复工程... 11 操作 ANDROID 模拟器...

More information

第一章 Android 简介与开发环境搭建

第一章 Android 简介与开发环境搭建 安卓开发环境与常用布局 第一章 Android 简介与开发环境搭建 本章目标 3G 的概念 Android 的改变 Android 开发环境的搭建编写第一个 Android 程序 Android 程序的目录结构 手机发展史 1. 3G 的概念 3G 全称为 :3rd Generation, 中文含义即为第三代数字通信, 是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统 2. 符合 3G

More information

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4 JAVA Extension 0..\Example\Ch0\ \ T.html..\Example\Ch0\ \ T.txt T.txt..\Example\Ch0\ \ T_Ok.html 提示 :. Marquee Marquee Font Color #FFFFFF BG Color #867bf Width 90 Height 50. T.txt Ctrl+C your scrolling

More information

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 导 你 搭 建 Linux 平 台 下 的 JAVA 开 发 环 境, 包 括 JDK 以 及 集

More information

01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Fl

01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Fl 01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Flash 可以做精美的網路動畫並不陌生, 但是實際上 Flash 不僅如此, 只要搭配 ActionScript

More information

AutoCAD 用戶如何使用 ArchiCAD

AutoCAD 用戶如何使用 ArchiCAD AutoCAD 用戶如何使用 ArchiCAD AutoCAD用戶如何使用ArchiCAD ( 中文版 ) 由 Scott MacKenzie, Simon Gilbert, Geoffrey Moore Langdon, David Byrnes, Ralph Grabowski 編寫 龍庭資訊有限公司 1/73 - 2. 3. 4. -

More information

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之 臺 北 市 大 安 高 級 工 業 職 業 學 校 資 訊 科 一 百 零 一 學 年 度 專 題 製 作 報 告 ------ 以 Android 製 作 ------ ----- 連 線 塔 防 遊 戲 ------ Tower defense game using Internet technology 班 級 : 資 訊 三 甲 組 別 : A9 組 組 員 : 葉 冠 麟 (9906129)

More information

財金資訊-83期.indd

財金資訊-83期.indd APP APP APP APP / Apple 2008 7 App Store APP 2015 3 ios App Store APP 120 650 Google Android Market 2008 10 APP 2012 3 Google Android Play Play Play Play Google Play APP appfigures Google Play APP 2015

More information

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至 . Android 是 什 么 第 章 绪 论 2 3 本 章 将 主 要 介 绍 Android 操 作 系 统, 这 些 背 景 知 识 可 以 帮 你 更 好 地 理 解 本 书 的 内 容 你 将 了 解 到, 这 一 平 台 在 如 今 以 便 携 式 消 费 型 电 子 设 备 为 基 础 的 Internet 2.0 环 境 下 是 如 何 大 显 身 手 的 这 里 所 说 的 Internet

More information

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级

More information

Microsoft Word - ASM SDK 說明文件

Microsoft Word - ASM SDK 說明文件 System Monitor SDK (for Android) 開發者指南說明書 1. 技術項目簡介 經由簡化的應用程式介面 (Application Programming Interface), 可 提供給 Android 應用程式開發者開發基於 System monitor 的應用程式 2. 應用範圍說明 本技術可應用於具備 Android 系統 2.3.3 以上版本的 Android 嵌入式裝

More information

Java 1 Java String Date

Java 1 Java String Date JAVA SCJP Java 1 Java String Date 1Java 01 Java Java 1995 Java Java 21 Java Java 5 1-1 Java Java 1990 12 Patrick Naughton C++ C (Application Programming Interface API Library) Patrick Naughton NeXT Stealth

More information

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63> 基 于 Android 平 台 的 电 子 拍 卖 系 统 摘 要 本 电 子 拍 卖 系 统 其 实 就 是 一 个 电 子 商 务 平 台, 只 要 将 该 系 统 部 署 到 互 联 网 上, 客 户 都 可 以 在 该 系 统 上 发 布 想 出 售 的 商 品, 也 可 以 对 拍 卖 中 的 商 品 参 与 竞 价 整 个 过 程 无 须 人 工 干 预, 由 系 统 自 动 完 成 本

More information

Oxford iSolution下載及安裝指南

Oxford iSolution下載及安裝指南 Oxford isolution 下載及安裝指南 Download and Installation Guide 系統要求 System Requirements... 2 Oxford isolution 安裝步驟 Windows 個人電腦 Oxford isolution Installation Steps For Windows PCs... 3 Oxford isolution 安裝步驟

More information

Lecture01_Android介绍

Lecture01_Android介绍 移动平台应用软件开发 Android 介绍 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一八年秋北京 Android 是什么 Android 不仅仅是一个操作系统, 它更是一个完整的软件框架 Android 基于 Linux 内核 2005 年 Google 公司收购了 Android 公司 Google 公司选择使用 Apache

More information

RecyclerView and CardVew

RecyclerView and CardVew RecyclerView and CardView 建國科技大學資管系饒瑞佶 2017/10 V1 CardView CardView A CardView is a ViewGroup. Like any other ViewGroup, it can be added to youractivity or Fragment using a layout XML file. To create an

More information

Microsoft PowerPoint - App與微控器整合.pptx

Microsoft PowerPoint - App與微控器整合.pptx 1 2 Outline APP 與微控器整合 2017 中山大學電機實驗營 App 開發環境 -Android Studio 介紹 App 開發 實驗營 App 流程 3 4 Android Studio 介紹 Android Studio 是一個為 Android 平台開發程式的整合式開發環境, 可供開發者免費使用, 並在 Windows OS X Linux 平台上均可執行 專案結構 一個專案下有

More information

! ios Swift ios Swift Swift Swift app app framework framework Apple Cocoa Touch 用 Swift 學習 Cocoa Touch framework Swift Swift 4

! ios Swift ios Swift Swift Swift app app framework framework Apple Cocoa Touch 用 Swift 學習 Cocoa Touch framework Swift Swift 4 ! ios Swift ios Swift Swift Swift app app framework framework Apple Cocoa Touch 用 Swift 學習 Cocoa Touch framework Swift Swift 4 http://www.secretlab.com.au/books/ learning-swift-3e Swift 4 Objective-C Swift

More information

Microsoft PowerPoint - java2012-ch12投影片.ppt

Microsoft PowerPoint - java2012-ch12投影片.ppt 第十二章大型程式的發展與常用的類別庫 學習如何分割檔案認識類別庫以及取用類別庫裡的類別建構 package 的階層關係學習 Java 裡常用的類別庫 1 分割檔案的實作 (1/2) 12.1 檔案的分割 以 CCircle 類別為例, 說明分割檔案的實作 1. 依序建立兩個類別檔案, 並置於同一個資料夾內 : 2 分割檔案的實作 (2/2) 12.1 檔案的分割 2. 分別以下列的指令編譯 CCircle.java

More information

! 2000 CSSsprites.com Web FTP app 20% 80% getelementbyid() UI Facebook F8 Web CSSsprites.com Web JavaScript CSS React xi React UI UI 反應 UI 宣告 d

! 2000 CSSsprites.com Web FTP app 20% 80% getelementbyid() UI Facebook F8 Web CSSsprites.com Web JavaScript CSS React xi React UI UI 反應 UI 宣告 d ! 2000 CSSsprites.com Web FTP app 20% 80% getelementbyid() UI Facebook 2015 3 F8 Web CSSsprites.com Web JavaScript CSS React xi React UI UI 反應 UI 宣告 declare 元件 DOM state JavaScript xi React Web ios Android

More information

Microsoft PowerPoint - 02_Android_Spring11_Installation.pptx

Microsoft PowerPoint - 02_Android_Spring11_Installation.pptx 作者 : 李昭賢作者 : 洪振偉編撰整理者 : 陳彥霖 學習目標 1. 安裝 Android SDK 2. 設定 Android SDK 3. 設定 Android 裝置模擬器 Google Android SDK Android 手持式裝置軟體開發套件 下載網址 http://developer.android.com/sdk/ 版本號碼 R10 支援 Android 3.0 Platform 包含以前

More information

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile.. WebSphere Studio Application Developer IBM Portal Toolkit... 1/21 WebSphere Studio Application Developer IBM Portal Toolkit Portlet Doug Phillips (dougep@us.ibm.com),, IBM Developer Technical Support Center

More information

ContextMenu

ContextMenu 作者 : 林致宇 日期 :2012/1/20 問題 : 如何建立 ContextMenu? 解答 : 什麼是 ContextMenu 呢? 下面兩張圖是 ContextMenu 的範例, 紅色框線中的選單即所謂的 ContextMenu, 可以視為 選單列表, 例如在左圖的 ContextMenu 中有兩個選項 : Action 1 與 Action 2, 按下 Action 1 可執行某些動作,

More information

Mac 版之 Horizon Auton 系統安裝操作手冊 Page 1 of 25

Mac 版之 Horizon Auton 系統安裝操作手冊 Page 1 of 25 Mac 版之 Horizon Auton 系統安裝操作手冊 Page 1 of 25 目錄 1. 概要... 3 2. 下載 Horizon AUTON MAC 版本應用程式... 3 3. 下載 WINESKIN... 4 4. 執行 WINESKIN WINERY... 5 5. 設定 WINESKIN WINERY... 6 5.1 安裝 Engines (WS9Wine2.22)... 6

More information

麻 省 理 工 學 院 是 在 西 元 2013 年 12 月 3 日 推 出 MIT App Inventor 2 網 站, 提 供 免 費 的 雲 端 服 務, 使 用 者 可 以 透 過 瀏 覽 器 來 開 發 Android 裝 置 應 用 程 式, 該 網 站 的 網 址 為 : http

麻 省 理 工 學 院 是 在 西 元 2013 年 12 月 3 日 推 出 MIT App Inventor 2 網 站, 提 供 免 費 的 雲 端 服 務, 使 用 者 可 以 透 過 瀏 覽 器 來 開 發 Android 裝 置 應 用 程 式, 該 網 站 的 網 址 為 : http 資 訊 學 科 中 心 6 月 份 電 子 報 用 MIT App Inventor2 程 式 拼 圖 來 開 發 Android 裝 置 應 用 程 式 李 啟 龍 學 習 Android 裝 置 程 式 設 計, 可 以 不 必 學 習 較 為 艱 澀 的 Java 語 法, 只 要 使 用 拼 圖 模 式 來 組 合 程 式, 就 可 以 完 成 Android 裝 置 的 應 用 程 式 MIT

More information

建立Android新專案

建立Android新專案 Android 智 慧 型 手 機 程 式 設 計 Android WebService 建 國 科 技 大 學 資 管 系 饒 瑞 佶 2012/4 V1 2012/8 V2 2013/5 V3 2014/10 v4 提 醒 這 節 的 內 容 針 對 的 是 MS 的 Web Service 或 是 使 用 SOAP(Simple Object Access Protocol) 標 準 建 立

More information

Microsoft PowerPoint - Chap03.ppt [相容模式]

Microsoft PowerPoint - Chap03.ppt [相容模式] 本章目的 2D / 3D 遊戲程式設計入門使用 XNA 3.0 與 C# 探討 XNA 遊戲程式內部的基本架構與遊戲開發流程 示範如何完成一個簡單的 XNA 遊戲方案 第三章 XNA 遊戲程式基本架構 1 2 新增 XNA 專案 新增 XNA 專案 3 4 XNA 相關的命名空間 Game1.cs 程式中的六個函數 using Microsoft.Xna.Framework; // 和 XNA 架構相關的型別

More information

1. 2. Flex Adobe 3.

1. 2. Flex Adobe 3. 1. 2. Flex Adobe 3. Flex Adobe Flex Flex Web Flex Flex Flex Adobe Flash Player 9 /rich Internet applications/ria Flex 1. 2. 3. 4. 5. 6. SWF Flash Player Flex 1. Flex framework Adobe Flex 2 framework RIA

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

题目

题目 开发 Android 应用 目的 : 帮助大家了解 Android 平台开发 作者 : 王威威 技术爱好 : linux,qt, 嵌入式开发 MSN : wangweiweicdma@hotmail.com Email : wang.weiwei1@ztenc.com.cn wangjiecdma@126.com 下载开发资源 1 下载最新的 Android SDK http://code.google.com/android/download.html

More information

Android + NFC

Android + NFC Android + NFC 建國科技大學資管系饒瑞佶 2017/3 v1 讀取 Tag UUID Android 2.3.3 (API Level 10) 才有支援完整的 NFC 功能 只要 NFC 相容都讀的到 (NFC 或 Mifare) 建立新專案修改 AndroidManifest.xml 加入 , 如果有 NFC Tag 進入感測範圍, 本 App 也會變成可處理的

More information

附录J:Eclipse教程

附录J:Eclipse教程 附 录 J:Eclipse 教 程 By Y.Daniel Liang 该 帮 助 文 档 包 括 以 下 内 容 : Eclipse 入 门 选 择 透 视 图 创 建 项 目 创 建 Java 程 序 编 译 和 运 行 Java 程 序 从 命 令 行 运 行 Java Application 在 Eclipse 中 调 试 提 示 : 在 学 习 完 第 一 章 后 使 用 本 教 程 第

More information

untitled

untitled PowerBuilder Tips 利 PB11 Web Service 年度 2 PB Tips PB9 EAServer 5 web service PB9 EAServer 5 了 便 web service 來說 PB9 web service 力 9 PB11 release PB11 web service 力更 令.NET web service PB NVO 論 不 PB 來說 說

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 多个用户界面的程序设计 3.1 页面的切换与传递参数值 3.1.1 传递参数组件 Intent Intent 是 Android 系统的一种运行时的绑定机制, 在应用程序运行时连接两个不同组件 在 Android 的应用程序中不管是页面切换还是传递数据或是调用外部程序都可能要用到 Intent Intent 负责对应用中某次操作的动作 动作涉及的数据 附加数据进行描述, Android

More information

Android 开发教程

Android 开发教程 封面 1 GUI 可视化设计器 DroidDraw DroidDraw 是一个基于 Java Swing 的 Android 界面设计器, 可以通过它来生成复杂的 Android Layout XML 文 件,Android 的 Layout 和 Swing Layout 中有很好的对应, 设计器的代码编写起来比较容易 2 AnDroidDraw AnDroidDraw 是一个与 DroidDraw

More information

Microsoft PowerPoint - 03 开发入门.ppt [兼容模式]

Microsoft PowerPoint - 03 开发入门.ppt [兼容模式] 手 机 应 用 平 台 软 件 开 发 3 开 发 入 门 刘 宁 Email:liuning2@mail.sysu.edu.cn 课 程 简 介 课 程 目 标 Android 开 发 准 备 工 作 开 发 包 及 工 具 安 装 创 建 HelloWorld Android 程 序 设 计 基 础 创 意 移 动 应 用 创 意 移 动 应 用 创 意 移 动 应 用 创 意 移 动 应 用

More information

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 ( 申 报 稿 ) 主 办 券 商 二 〇 一 五 年 十 月 声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的 负 责 人 会 计 机 构

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

第三篇 第 10 章 - 管理者登入第 11 章 - 更改網路商店 Logo 第 12 章 - 系統設定第 13 章 - 商品上架第 14 章 - 付款方式設定第 15 章 - 出貨方式設定第 16 章 - 特價商品 oscommerce 103

第三篇 第 10 章 - 管理者登入第 11 章 - 更改網路商店 Logo 第 12 章 - 系統設定第 13 章 - 商品上架第 14 章 - 付款方式設定第 15 章 - 出貨方式設定第 16 章 - 特價商品 oscommerce 103 第三篇 第 10 章 - 管理者登入第 11 章 - 更改網路商店 Logo 第 12 章 - 系統設定第 13 章 - 商品上架第 14 章 - 付款方式設定第 15 章 - 出貨方式設定第 16 章 - 特價商品 103 電子商務網站經營與管理 10-11 - Logo 12-13 - 14-15 - 16 - 一 情境描述 - 店主的心聲 1. 2. / 104 3. 第三篇網路商店新店開幕

More information

Learning Java

Learning Java Java Introduction to Java Programming (Third Edition) Prentice-Hall,Inc. Y.Daniel Liang 2001 Java 2002.2 Java2 2001.10 Java2 Philip Heller & Simon Roberts 1999.4 Java2 2001.3 Java2 21 2002.4 Java UML 2002.10

More information

投影片 1

投影片 1 計算機程式及實習 期末報告 題目 : 六宿炒翻天 班級 : 奈米一乙姓名 : 陳洋翼學號 :4A514050 老師 : 謝慶存 程式說明 設計結帳系統, 選擇數量後, 在按下計算, 將會顯示總金額 若是老人或小孩, 將可享 8 折或 9 折的優惠 程式畫面 填選數量 在火腿蛋炒飯的數量選擇 1, 並按下計算, 可得總金額 50 元 程式畫面 打折 填選完後, 若客人是小孩或老人, 選擇欲打折項目,

More information

03 开发入门.key

03 开发入门.key #3 手机应用开发入门 刘宁 Email:liuning2@mail.sysu.edu.cn 大纲» Android 基本概念» 开发包及 工具安装» 创建 HelloWorld» Android 程序设计基础 2 Android 开发基本概念» Activities» Intents» 视图与控件 ( 界 面元素 )» 异步调 用 ( 多线程 支持 )» 后台服务 3 Activities Android

More information

Eclipse C C++, or

Eclipse C C++,  or Eclipse C C++, Emailctchen@pl.csie.ntut.edu.tw or s1669021@ntut.edu.tw, s2598003@ntut.edu.tw http://pl.csie.ntut.edu.tw/~ctchen, http://www.ntut.edu.tw/~s2598003/ 2004/9/10 (0.02 ) Eclipse http://www.eclipse.org

More information

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android= 第 6 章广播接收者 应用案例 案例 6-1 CallRecord( 通话记录 ) 一 案例描述 1 考核知识点 030006001: 广播接收者简介 030006002: 广播接收者的创建 2 练习目标 广播的静态注册和使用 使用广播处理处理事件 3 需求分析手机最重要的功能就是通话功能, 同样储存通话记录也是必不可少的 该案例使用广 播接收者自己实现通话记录的功能 包括呼出电话 已接来电 未接来电以及通话产生的

More information

GoFlex Home UG Book.book

GoFlex Home UG Book.book FreeAgent GoFlex Home 用 户 指 南 FreeAgent GoFlex Home 用 户 指 南 2011 Seagate Technology LLC. 保 留 所 有 权 利 Seagate Seagate Technology Wave 徽 标 及 FreeAgent 是 Seagate Technology LLC 或 其 某 个 子 公 司 的 商 标 或 注 册 商

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc) 作者 Amber 版本 1.0.0 日期 2012/04/24 頁數 1/9 如何使用 watchdog 防止程式當機? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 WES2009 所有版本 XP-8000-Atom 系列 WES2009 所有版本 注意! 欲變更系統的任何設定之前, 請先關閉 EWF 的保護, 方能使變更值生效 ; 設定完成之後, 請再開啟

More information

Microsoft PowerPoint - C_Structure.ppt

Microsoft PowerPoint - C_Structure.ppt 結構與其他資料型態 Janet Huang 5-1 結構的宣告 struct 結構名稱 struct 結構名稱變數 1, 變數 2,, 變數 m; struct 結構名稱 變數 1, 變數 2,, 變數 m; student; student; 5-2 1 結構變數初值的設定 struct 結構名稱 struct 結構名稱變數 = 初值 1, 初值 2,, 初值 n student="janet","1350901",100,95

More information

ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue html vue html vue Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code h

ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue html vue html vue Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code h ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue010101.html vue010104.html vue0101 01 04 Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code https://code.visualstudio.com/ Chrome XAMP Visual Studio

More information

Microsoft PowerPoint - EmbSys101_Java Basics.ppt [相容模式]

Microsoft PowerPoint - EmbSys101_Java Basics.ppt [相容模式] Java Basics Hi Hsiao-Lung Chan, Ph.D. Dept Electrical Engineering Chang Gung University, Taiwan chanhl@maili.cgu.edu.twcgu 執行環境 - eclipse 點選 eclipse 軟體執行檔 設定工作路徑 eclipse 開啟 2 建置 Java 專案 File New project

More information

SyncMail AJAX Manual

SyncMail AJAX Manual HKBN Cloud Mail on Mobile How to setup POP3 and IMAP (Version 1.1) 1 Table of Contents HKBN Cloud Mail 用戶設定 Android 手冊 HKBN Cloud Mail Android Setup... 3 Android 2.X... 3 Android 3.x - 4.X... 6 HKBN Cloud

More information

Microsoft Word - CS-981.doc

Microsoft Word - CS-981.doc 4. 資料表示法 4.1 十進位與數字系統 (1). 基本觀念 數字系統的觀念 人們習慣以十進位的計量方式來計算 不同的數字系統有二進位 (Binary) 八進位 (Octal) 十進位 (Decimal) 十六進位(Hexadecimal) 二進位 電腦內部用來表達訊號的資料只有兩種符號 : 0 表示沒電,1 表示有電透過多個電路的組合表示出無數符號, 電腦便利用這些符號來表示不同的數字 利用兩條電線可以表示出

More information

Outlook Express 設定說明 Offic 企業郵件 / 虛擬主機郵件 / Office 365

Outlook Express 設定說明 Offic 企業郵件 / 虛擬主機郵件 / Office 365 Outlook Express 設定說明 OfficeMail 企業郵件 / 虛擬主機郵件 / Office 365 版權及商標聲明 Cloudmax 匯智提供用戶商務用郵件服務, 本文件由 Cloudmax 匯智製作, 用於教導用戶 進行郵件服務相關設定, 內容中所使用的郵件工具非為 Cloudamx 匯智設計及擁有, 若對 程式資訊有疑問, 請洽程式提供商 本文件所引用之各商標及商品名稱分屬其合法註冊公司所有,

More information

開發工具 使用 Android SDK 建立應用程式 使用 Java 語言 Java Platform, Standard Edition (Java SE)

開發工具 使用 Android SDK 建立應用程式 使用 Java 語言 Java Platform, Standard Edition (Java SE) Android 應用程式 開發概論 中華民國九十九年十二月二日星期四 開發工具 使用 Android SDK 建立應用程式 使用 Java 語言 Java Platform, Standard Edition (Java SE) 系統需求 項目版本要求說明 作業系統 Windows XP/Vista MacOS X 10.4.8+ Ubuntu (Drapper) 開發套件 JDK + Android

More information

ltu

ltu 資 訊 管 理 系 學 齡 前 自 主 學 習 之 行 動 裝 置 輔 助 系 統 指 導 教 授 : 李 靜 怡 教 授 組 員 名 單 : 蔡 承 育 988C012 黃 佳 誼 988C026 鄭 亦 琦 988C060 廖 曼 伶 988C108 中 華 民 國 1 0 2 年 5 月 嶺 東 科 技 大 學 資 訊 管 理 系 學 齡 前 自 主 學 習 之 行 動 裝 置 輔 助 系 統

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

More information

1.Product Description

1.Product Description LoopView 2002 All rights reserved. LoopView P/N : 51.LVIEW0.100 04/2002 Version 1.6 錄 1...1-1 1.1...1-1 2...2-1 2.1 Castle Rock...2-1 2.1.1...2-1 2.1.2...2-1 2.1.3...2-1 2.1.4 TCP/IP...2-1 2.1.5 SNMPc...2-2

More information

FETnet - Acer Iconia Tab  (A500 Wi-Fi 版) 平板電腦操作指南

FETnet - Acer Iconia Tab  (A500 Wi-Fi 版) 平板電腦操作指南 Acer Iconia Tab (A500) 平板電腦操作指南 作業系統 :Android 3.0 / 網路頻段 :Wi-Fi 版暫不支援 :Exchange Server 信箱 ( 無法使用 Smart 助手 ) 及手寫輸入法 產品外觀安全保密功能設定數據功能 開關 PIN 碼 ( 暫無資料 ) 更改 PIN 碼 ( 暫無資料 ) 解除 PUK 碼 ( 暫無資料 ) 手機密碼鎖 手動選網 ( 暫無資料

More information

價規一覽表 仁銓契約編號 : _275 區別 : 臺北市 新北市 桃園市 新竹縣 ( 市 ) 臺中市契約期間 :108/03/26~109/03/25 軟體標契約價是含稅 5% 與 IDB 服務費 1.5% 經濟部工業局 108 年第一次電腦軟體共同供應契約採購案號 _

價規一覽表 仁銓契約編號 : _275 區別 : 臺北市 新北市 桃園市 新竹縣 ( 市 ) 臺中市契約期間 :108/03/26~109/03/25 軟體標契約價是含稅 5% 與 IDB 服務費 1.5% 經濟部工業局 108 年第一次電腦軟體共同供應契約採購案號 _ 12 6 Citrix Virtual Apps Advanced Edition (CCU) 含 1 年 Customer Success Services Citrix Systems 5-100 NT$24,664 12 7 Citrix Virtual Apps Premium Edition (CCU) 含 1 年 Customer Success Services Citrix Systems

More information

1

1 内 容 提 要 作 为 Google 开 发 的 全 新 开 源 手 机 平 台,Android 发 展 如 火 如 荼 本 书 通 过 大 量 代 码 秘 诀 全 面 详 尽 地 讲 述 了 Android 开 发 技 术 从 activity 和 intent 基 础 知 识 开 始, 到 线 程 服 务 broadcast receiver 以 及 alert 警 告 框, 再 到 用 户 界

More information

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD 10 SCJD 簡介 Java 10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD 10 SCJD 10-3 Java Java SCJD 7 Swing RMI 10.1.1 The Assignment The Essay 9 10 10-4 SCJP SCJD 90 10.1.2 SCJP Java 90 120 Swing 10

More information