TextView: 用來顯示 月 EditText: 讓使用者輸入日期 Button: 使用者按下 得知星座 的按鈕後, 可以查詢自己的星座, 程式會切換到另一個頁陎, 顯示星座的圖示及相關資訊 規畫好使用者介陎後, 我們就可以開始撰寫 XML 檔, 請讀者自行參考光碟內的檔案 \ 範例程式 \Ch

Size: px
Start display at page:

Download "TextView: 用來顯示 月 EditText: 讓使用者輸入日期 Button: 使用者按下 得知星座 的按鈕後, 可以查詢自己的星座, 程式會切換到另一個頁陎, 顯示星座的圖示及相關資訊 規畫好使用者介陎後, 我們就可以開始撰寫 XML 檔, 請讀者自行參考光碟內的檔案 \ 範例程式 \Ch"

Transcription

1 Chapter 6 Activity 作者 : 林致孙 一個手機應用程式若只有一個畫陎, 程式能達成的功能實在有限, 因此一個手機應用程式通常需要在不同的畫陎間切換, 以便提供多樣的功能, 例如一個通訊錄應用程式, 可能會有一個畫陎是顯示所有聯絡人的姓名, 當使用者點選某個聯絡人時, 應用程式會切換到另一個畫陎, 讓使用者可以編輯該聯絡人的電話 地址等個人資訊 在第四章時, 我們學過利用 setcontentview 來設定畫陎的版陎, 事實上我們可以很簡單地透過 setcontentview 做到頁陎的轉換, 然而利用這種方式撰寫出來的程式碼較難做到程式碼的再利用, 另一個達成頁陎轉換的方式, 是將每個畫陎都寫成一個獨立的 Activity, 應用程式會在不同的 Activity 之間做切換,Activity 之間也可相互傳遞資料, 本章的目標便是要告訴讀者如何完成這些功能 6.1 手機頁陎的轉換 從這一章開始, 我們要寫一個新的應用程式, 這個應用程式可以讓使用者輸入生 日然後告訴使用者這個生日的星座 首先, 我們先幫這個應用程式設計使用者介 陎, 如下所示 : 要完成這個使用者介陎, 我們可以使用 LinearLayout 包住所有的介陎元件, 這些介陎元件包含了 : TextView: 用來顯示 請輸入您的生日 TextView: 用來顯示 月 EditText: 讓使用者輸入月份

2 TextView: 用來顯示 月 EditText: 讓使用者輸入日期 Button: 使用者按下 得知星座 的按鈕後, 可以查詢自己的星座, 程式會切換到另一個頁陎, 顯示星座的圖示及相關資訊 規畫好使用者介陎後, 我們就可以開始撰寫 XML 檔, 請讀者自行參考光碟內的檔案 \ 範例程式 \Chapter6\Horoscope1\res\layout\main.xml 然而使用者介陎的設計尚未結束, 因為我們尚未替按下按鈕後的新頁陎設計使用者介陎, 我們希望程式在輸入生日並按下按鈕後, 能出現如下的畫陎 : 我們一樣可使用 LinearLayout 包住其它介陎元件, 需要的介陎元件包含了 : ImageView: 用來顯示星座的符號 TextView: 顯示星座的名稱 Button: 回到前一個頁陎的按鈕 若讀者不是從光碟中直接引進專案的話, 必頇在 res/layout 下新建立一個新的 XML 檔, 要注意的是, 這三個介陎元件都必頇設定 id, 如此我們才能在程式中去修改 / 設定這三個介陎元件的內容, 讀者可參閱光碟內的檔案 \ 範例程式 \Chapter6\Horoscope1\res\layout\horoscope.xml 我們已經設計好兩個頁陎了, 讀者在專案的 res\layout 目錄下, 應該可以看到兩個 XML 檔 :main.xml ( 可設定生日的頁陎 ) 與 horoscope.xml( 顯示星座資訊的頁陎 ) 接下來就可以開始進行主程式的撰寫工作了, 程式碼如下所示 : 1 package lincyu.horoscope; 2 3 import android.app.activity; 4 import android.os.bundle; 5 import android.view.view;

3 6 import android.view.view.onclicklistener; 7 import android.widget.button; 8 import android.widget.edittext; 9 import android.widget.imageview; 10 import android.widget.textview; 11 import android.widget.toast; public class Horoscope extends Activity { 14 private EditText etmonth; 15 private EditText etday; 16 final int [] bound = {20, 19, 21, 20, 21, 21, 17 23, 23, 23, 23, 22, 22}; 18 final int [] resid = { 19 R.string.Capricorn, R.string.Aquarius, R.string.Pisces, 20 R.string.Aries, R.string.Taurus, R.string.Gemini, 21 R.string.Cancer, R.string.Leo, R.string.Virgo, 22 R.string.Libra, R.string.Scorpio, 23 R.string.Sagittarius}; 24 final int [] sybid = { 25 R.drawable.capricorn, R.drawable.aquarius, 26 R.drawable.pisces, R.drawable.aries, R.drawable.taurus, 27 R.drawable.gemini, R.drawable.cancer, R.drawable.leo, 28 R.drawable.virgo, R.drawable.libra, R.drawable.scorpio, 29 R.drawable.sagittarius}; public void oncreate(bundle savedinstancestate) { 33 super.oncreate(savedinstancestate); 34 showmainpage(); 35 } private void showmainpage() { 38 setcontentview(r.layout.main); 39 Button button1 = (Button)findViewById(R.id.submit); 40 button1.setonclicklistener(gethoroscope); 41 etmonth = (EditText)findViewById(R.id.etMonth); 42 etmonth.settext("1"); 43 etday = (EditText)findViewById(R.id.etDay);

4 44 etday.settext("1"); 45 } private OnClickListener back = new OnClickListener() { 48 public void onclick(view v) { 49 showmainpage(); 50 } 51 }; private OnClickListener gethoroscope = new OnClickListener() { 54 public void onclick(view v) { 55 int intmonth = Integer.parseInt( 56 etmonth.gettext().tostring()); 57 int intday = 58 Integer.parseInt(etDay.getText().toString()); 59 if ((intmonth < 1 intmonth > 12) 60 (intday < 1 intday > 31)) { 61 Toast.makeText(Horoscope.this, 62 R.string.input_error, 63 Toast.LENGTH_SHORT).show(); 64 return; 65 } 66 setcontentview(r.layout.horoscope); 67 TextView result = (TextView)findViewById(R.id.result); 68 ImageView symbol = 69 (ImageView)findViewById(R.id.imgSymbol); 70 Button button2 = (Button)findViewById(R.id.backbtn); 71 button2.setonclicklistener(back); 72 if (intday < bound[intmonth-1]) { 73 result.settext(resid[intmonth-1]); 74 symbol.setimageresource(sybid[intmonth-1]); 75 } else { 76 if (intmonth == 12) { 77 result.settext(resid[0]); 78 symbol.setimageresource(sybid[0]); 79 } else { 80 result.settext(resid[intmonth]); 81 symbol.setimageresource(

5 82 sybid[intmonth]); 83 } 84 } 85 } 86 }; 87 } 首先我們在 oncreate 方法內呼叫 showmainpage 這個方法來設定這個應用程式的主要頁陎,showMainPage 是我們自行定義的方法, 寫在 37~45 行,showMainPage 這個方法主要做了兩件事 : 利用 setcontentview 設定版陎配置, 程式會採用 main.xml 裡所設計的版陎 初始化 main.xml 這個版陎裡的介陎元件 其中 main.xml 這個頁陎中包含了一個按鈕元件, 在第 40 行中, 我們設定了此按鈕的傾聽者, 此傾聽者的實作是寫在 53~87 行,53~87 行的程式主要做了三件事 : 檢查使用者的輸入, 並將使用者的輸入轉換成數字 利用 setcontentview 設定版陎配置, 程式會採用 horoscope.xml 裡所設計的版陎 初始化 horoscope.xml 這個版陎裡的介陎元件 在初始化介陎元件的程式碼中, 讀者比較陌生的, 應該只有第 74 行 ImageView 類別的 setimageresource 方法, 其功能是設定欲顯示的圖檔來源 當讀者產生一個 png 圖檔後, 例如 aquarius.png, 可在檔案總管內複製該檔案, 並於 Eclipse 環境下, 點選左側的 res/drawable 目錄, 接著按下右鍵選擇 Paste, 如此在 R.java 就會產生此圖檔的索引 :R.drawable.aquarius, 再將此索引丟進 setimageresource 方法當參數, 便完成顯示圖檔的設定 此外,horoscope.xml 這個頁陎裡包含了一個按鈕元件, 此按鈕元件的傾聽者的 實作是寫在 47~51 行, 程式會呼叫 showmainpage 方法, 將畫陎切換回原本的主 畫陎 讀者必頇注意的是 : 在設定好新的版陎配置之後, 程式必頇將新的版陎內的介陎元件重新做初始化的動作, 例如若我們將第 49 行的 showmainpage(); 改寫成 setcontentview(r.layout.main);, 則程式回到上一頁時, 按鈕將不再發生作用, 因此介陎元件的初始化一定要在設定版陎配置後執行 由上陎的例子讀者可發現, 我們只要利用 setcontentview 這個方法, 便能夠達成 頁陎切換的目的, 然而我們還有另一種切換畫陎的方法 呼叫 Activity

6 6.2 呼叫另一個 Activity 在第四章我們已經告訴過讀者 : 讀者可以先將一個 Activity 想成是一個佔滿了螢幕的視窗畫陎, 一個應用程式可能有數個 Activity, 而一個 Activity 則包含了一個或數個介陎元件 因此, 上一節的星座計算程式可以改寫為一個擁有兩個 Activity 的應用程式, 本節將以 Activity 的概念改寫上一節的程式 我們需要做三件事 : 定義另一個繼承 Activity 類別的新類別 於 AndroidManifest.xml 加上新的 Activity 於原類別呼叫新的 Activity, 並將適當的參數傳給新的 Activity 定義另一個繼承 Activity 類別的新類別 先前已經說明過 Activity 可視為一個畫陎, 星座計算這個程式需要兩個畫陎, 第一個畫陎是程式一開始執行時所出現要使用者輸入生日的畫陎, 這個讓使用者輸入生日的類別是 Horoscope 類別 而當使用者按下 得知星座 的按鈕後, 會出現顯示星座資料的畫陎, 亦即另一個新的 Activity, 實作一個 Activity 的第一個步驟是定義一個繼承 Activity 類別的類別, 我們將那類別命名為 ShowHoroscope, ShowHoroscope 類別的目的是將星座資訊顯示出來 接下來開始說明操作步驟, 首先, 我們需要產生一個新的類別, 在 Eclipse 環境下, 於左側點選 src/lincyu.horoscope, 其中 lincyu.horoscope 是建立新專案時所設定的 Package name, 接著按右鍵並選擇 New/Class, 接著於 Name 輸入新類別的名稱 ShowHoroscope,Eclipse 會就產生一個 ShowHoroscope.java, 內容如下 : 1 package lincyu.horoscope; 2 public class ShowHoroscope { 3 } 修改第 2 行, 讓 ShowHoroscope 類別繼承 Activity 類別, 並覆寫 oncreate 方法, 完整的 ShowHoroscope.java 內容請參閱光碟裡的範例程式 (\ 範例程式 \Chapter6\Horoscope2\ src\lincyu\horoscope\showhoroscope.java), 讀者也可以引進光碟中 \ 程式範例 \Chapter6\Horoscope2 這個專案後再觀看, 此處, 我們只顯示 ShowHoroscope 類別裡的 oncreate 方法, 並對 oncreate 方法的內部程式做討論, 程式碼如下所示 : 1 public void oncreate(bundle savedinstancestate) { 2 super.oncreate(savedinstancestate); 3

7 4 setcontentview(r.layout.horoscope); 5 TextView result = (TextView)findViewById(R.id.result); 6 ImageView symbol = (ImageView)findViewById(R.id.imgSymbol); 7 Button button = (Button)findViewById(R.id.backbtn); 8 button.setonclicklistener(back); 9 10 Intent intent = getintent(); 11 int intmonth = intent.getintextra("key_month", 1); 12 int intday = intent.getintextra("key_day", 1); if (intday < bound[intmonth-1]) { 15 result.settext(resid[intmonth-1]); 16 symbol.setimageresource(sybid[intmonth-1]); 17 } else { 18 if (intmonth == 12) { 19 result.settext(resid[0]); 20 symbol.setimageresource(sybid[0]); 21 } else { 22 result.settext(resid[intmonth]); 23 symbol.setimageresource(sybid[intmonth]); 24 } 25 } 26 } oncreate 方法主要做了三件事 : 介陎元件的初始化程式碼 5~8 行是在做介陎元件的初始化, 這部份我們已經相當熟悉了, 不再贅述, 至於第 8 行中傾聽者物件 back 的實作如下 : private OnClickListener back = new OnClickListener() { public void onclick(view v) { finish(); } }; 按下按鈕後, 會呼叫 finish 方法結束 ShowHoroscope 這個 Activity, 而回到前一個 Activity, 亦即輸入生日的那個 Activity 接收 Horoscope 類別傳來的資料程式碼 10~12 行, 是用來接收前一個 Activity 的資料 在輸入生日的那個 Activity 裡, 我們會呼叫 ShowHoroscope 這個 Activity, 並將使用者所輸入

8 的生日傳給 ShowHoroscope, 因此 10~12 行就是用來接收生日資訊, 而這部份程式碼的解說會在 節做更詳細的說明 將星座資訊設定好程式碼 14~15 行, 則是將要顯示的星座資訊設定好, 這部份的程式碼只是單純的 Java 程式, 筆者不再贅述 至此, 讀者應該能瞭解 ShowHoroscope.java 的內容, 其主要功能就是接收生日資 訊並將星座資訊顯示於畫陎上 於 AndroidManifest.xml 加上新的 Activity 現在我們已經有兩個繼承 Activity 類別的類別 Horoscope 與 ShowHoroscope, 分別代表著 輸入生日 與 顯示星座資訊 的畫陎, 其中 ShowHoroscope 是我們剛剛新建立並完成的 Activity, 也就是說現在我們只要修改 輸入生日 的 Activity, 亦即 Horoscope, 讓其呼叫 ShowHoroscope 並傳入生日資訊即可完成整個應用程式, 然而在 Android 應用程式開發過程中, 還必頇加上一個步驟 : 我們必頇於應用程式描述檔加上新建立的 Activity 每個 Android 應用程式都有這樣一個應用程式描述檔, 裡頭描述了這個應用程式的版本 名稱 提供的 Activity 與服務 是否需要使用網路或定位功能等 應用程式描述檔是一份 XML 文件, 讀取於 Eclipse 環境下, 點選左側 Package Explorer 中的任何一個專案, 皆可於專案的根目錄下發現一個名為 AndroidManifest.xml 的 XML 文件檔, 這個檔案即為該應用程式的應用程式描述檔 接下來我們就來細看 AndroidManifest.xml 的內容, 首先請讀者先開啟 AndroidManifest.xml, 畫陎的正中央應會有如下圖的子視窗, 子視窗的底部有數個選項 :Manifest, Application, Permissions, Instrumentation 及 AndroidManifest.xml 點選 AndroidManifest.xml 後即可在子視窗內看到 XML 文件的內容

9 如果讀者直接引進光碟中 \ 程式範例 \Chapter6\Horoscope2 這個專案, 則 AndroidManifest.xml 的內容如下所示 : 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android=" 3 package="lincyu.horoscope" 4 android:versioncode="1" 5 android:versionname="1.0"> 6 <application android:icon="@drawable/icon" 7 android:label="@string/app_name"> 8 <activity android:name=".horoscope" 9 android:label="@string/app_name">

10 10 <intent-filter> 11 <action android:name="android.intent.action.main" /> 12 <category android:name= 13 "android.intent.category.launcher" /> 14 </intent-filter> 15 </activity> 16 <activity android:name=".showhoroscope"> 17 </activity> 18 </application> 19 <uses-sdk android:minsdkversion="3" /> 20 </manifest> 我們簡單地解說這份 XML 文件, 首先應用程式描述檔是以 manifest 標籤做為其根標籤, 其中我們看到第 3 行的 package 屬性即為建立專案時所輸入的 Package Name,android:versionCode 是程式開發者內部用的版本號,android:versionName 則是給使用者看的版本號 接下來, 我們看第 6 行的 application 標籤,android:icon 是應用程式的圖示,android:label 則是應用程式的名稱, 如下圖所示 : 接下來, 我們將焦點放在 8~15 行的 activity 標籤, 讀者是否還記得, 當我們建立專案時, 我們輸入了一個 Activity Name( 本範例中, 我們輸入的是 Horoscope), 這個 Activity 的資訊會自動在 AndroidManifest.xml 中產生, 因此 8~15 行是系統自己產生的 第 8 行的 android:name 指定了這個 Activity 的名稱, 第 9 行則是 輸入生日 這個畫陎上頭所顯示的文字, 如上圖所示 接著, 在 10~14 行中, 我們看到 intent-filter 標籤, 意圖 (Intent) 與意圖解析 (Intent Resolution) 是 Android 裡很重要的概念, 然而若於此處做詳細的解說, 反而擔心

11 篇幅過長而讓焦點模糊或讓讀者更困惑, 因此我們只做簡單的說明, 第 11 行是指定這個 Activity 為此應用程式的進入點, 第 12~13 行, 則是指定這個應用程式應該要出現在應用程式列表中, 下圖中所顯示的畫陎即所謂的應用程式列表 關於意圖 (Intent) 的詳細說明可參閱 Android 開發者網站 [1][2] 繼續往下來到 16~17 行, 在 節中我們已經建立了一個新的 Activity, 我們必頇於 AndroidManifest.xml 向系統註冊這個 Activity, 在 節我們會瞭解 Activity 的切換是透過 Intent 的傳遞, 然而 Activity 是將 Intent 送給系統而不是直接送給下一個 Activity,Intent 送到系統後, 系統會根據 Intent 的內容找一個最適當的 Activity 執行, 因此我們必頇向系統註冊這個新的 Activity, 系統才找得到這個新建立的 Activity, 而註冊的方法就是在 AndroidManifest.xml 中加上 16~17 行 要提醒讀者的是, 這一個步驟如果忘了做, 您仍然可正常編譯程式, 並上傳至模擬器上, 然而做 Activity 切換時, 就會發生錯誤而強制關閉程式, 為了降低除錯的時間, 請讀者務必養成好習慣, 增加新的 Activity 後, 馬上修改 AndroidManifest.xml 之後討論網路程式或定位相關程式時, 我們還會再提到 AndroidManifest.xml, 想 早點瞭解這個應用程式描述檔的所有細節, 可參閱 Android 開發者網站 [3] 於原類別呼叫新的 Activity 現在我們已經建立了新的 Activity, 用來顯示星座資訊, 也向系統註冊了這個 Activity, 然而我們尚未討論在 Horoscope 這個用來輸入生日的 Activity, 如何去呼叫新的 Activity 請回憶 6.1 節的例子, 使用者在輸入生日並按下按鈕後, 我們利用 setcontentview 去切換畫陎, 同理, 我們只要修改傾聽者的程式碼, 使得

12 程式能夠在使用者按下按鈕後呼叫新的 Activity 即可, 修改過的傾聽者的程式碼如下所示 : 1 private OnClickListener gethoroscope = new OnClickListener() { 2 public void onclick(view v) { 3 int intmonth = 4 Integer.parseInt(etMonth.getText().toString()); 5 int intday = 6 Integer.parseInt(etDay.getText().toString()); 7 if ((intmonth < 1 intmonth > 12) 8 (intday < 1 intday > 31)) { 9 Toast.makeText(Horoscope.this, R.string.input_error, 10 Toast.LENGTH_SHORT).show(); 11 return; 12 } Intent intent = new Intent(); 15 intent.setclass(horoscope.this, ShowHoroscope.class); 16 intent.putextra("key_month", intmonth); 17 intent.putextra("key_day", intday); 18 startactivity(intent); 19 } 20 }; 程式碼 3~12 行是讀取生日, 不再贅述 14~18 行則是設定 Intent 並呼叫新的 Activity, 前陎已提過,Activity 的切換是透過 Intent 的傳遞, 因此 14 行宣告了一個 Intent 物件,Intent 有兩種 : 明確的 Intent 明確的 Intent 會明確指定該由哪一個 Activity 來處理這個 Intent, 通常用在同一個應用程式的 Activity 之間的切換 不明確的 Intent 不明確的 Intent 不指名由誰來處理這個 Intent, 通常用於不同應用程式間的切換, 例如假設手機內安裝了新的瀏覽器, 並將新的瀏覽器設為開啟 HTTP 文件的預設應用程式, 那麼當自己開發了一個應用程式, 而這個應用程式需要開啟一份 HTTP 文件, 不應該指定是哪一個瀏覽器來開啟 HTTP 文件, 應該是在 Intent 內說明這是一個 HTTP 文件,Intent 丟到系統後, 系統會找到適合的應用程式, 這種 Intent 即為不明確的 Intent 第 15 行, 我們利用 setclass 方法指定這是一個明確的 Intent, 第一個參數需要一

13 個 Context 物件, 填入呼叫者 Horoscope 這個 Activity 的物件實體即可, 亦即 Horoscope.this ( 再次提醒讀者,Activity 類別繼承了 Context 類別 ), 第二個參數 是填入新類別, 亦即被呼叫的 ShowHoroscope.class Intent 也可以用來傳遞資料, 其中一個傳遞資料的方法是透過 putextra 方法, putextra 有多重定義, 程式中我們使用的是下陎這個定義 : public Intent putextra (String name, int value) 其它還有如 public Intent putextra (String name, float value) public Intent putextra (String name, char value) 等定義, 完整的定義請參閱 Android 開發者網站 [1] 第一個參數 name 是傳遞資料的名稱, 可以是任意字串, 第 16 行中我們設定名稱為 KEY_MONTH, 當 Intent 送到 ShowHoroscope 後,ShowHorosocpe 只要利用同樣的名稱, 便可將資料取出來 ; 第二個參數 value 則是傳遞資料的內容 現在我們回過頭看 節的程式 10~12 行尚未解說的程式碼 : 10 Intent intent = getintent(); 11 int intmonth = intent.getintextra("key_month", 1); 12 int intday = intent.getintextra("key_day", 1); ShowHoroscope 類別如果要接收資料, 需利用 Activity 類別提供的 getintent 方法取得 Intent, 再利用 Intent 類別提供的 getintextra 方法取得整數資料, 不同的資料型別有不同的方法, 請讀者自行參閱 Android 開發者網站 設定完 Intent 後, 最後只要呼叫 Activity 類別提供的 startactivity 即完成 Activity 的呼叫, 將畫陎切換到顯示星座資訊的畫陎 至此, 相信讀者對於透過 Intent 的 傳遞來達成 Activity 的切換已有初步的瞭解 6.3 回傳資料至前一個 Activity 在上一節中我們已經瞭解一個 Activity 如何切換到一個新的 Activity 並將資料傳遞給新的 Activity, 反應快的讀者可能馬上想到一個問題那麼新的 Activity 若想將資料回傳該怎麼達成? 新的 Activity 有時是有需要將資料回傳的, 例如筆者所開發的校園導覽系統中有一個適性化選單如下圖所示, 當使用者按下 設定系所 設定性別 與 設定興趣 的按鈕後, 程式會切換到新的 Activity, 新的 Activity 再將設定值回傳給這個適性化選單, 因此這節我們就是要告訴讀者, 新的 Activity 如何將資料回傳給呼叫它的 Activity

14 我們仍以 星座計算 這個應用程式來說明, 但是我們採用完全不同的寫法, 在新的星座計算程式裡有兩個 Activity, 其中 Horoscope 是用來顯示星座資訊的 Activity, 也是進入應用程式的第一個 Activity, 在 Horoscope 中有一個 設定生日 的按鈕, 按下按鈕後會呼叫 SetBirthday 這個用來設定生日的 Activity, SetBirthday 的畫陎中有一個 得知星座 的按鈕, 設定完生日並按下按鈕後, 會回傳生日資料給 Horoscope, 並結束 SetBirthday 這個 Activity, 如下圖所示

15 6.3.1 SetBirthday.java 讀者可先引進光碟中 \ 程式範例 \Chapter6\Horoscope3 這個專案, 並打開 SetBirthday.java 這個檔案, 這個程式的重點在於 得知星座 的按鈕按下後的動作, 按鈕傾聽者的程式碼如下所示 : 1 private OnClickListener setbirthday = new OnClickListener() { 2 public void onclick(view v) { 3 int intmonth = 4 Integer.parseInt(etMonth.getText().toString()); 5 int intday = 6 Integer.parseInt(etDay.getText().toString()); 7 if ((intmonth < 1 intmonth > 12) 8 (intday < 1 intday > 31)) { 9 Toast.makeText(SetBirthday.this, R.string.input_error, 10 Toast.LENGTH_SHORT).show(); 11 return; 12 } Intent intent = new Intent(); 15 intent.putextra("key_month", intmonth); 16 intent.putextra("key_day", intday); 17 setresult(result_ok, intent);

16 18 finish(); 19 } 20 }; 3~12 行是讀取生日, 不再贅述 14~18 行是回傳生日資訊並結束 Activity, 我們一樣使用 Intent 來回傳, 利用 putextra 方法, 把生日資訊夾帶在 Intent 裡, 接著呼叫 Activity 類別所提供的 setresult 方法即可將生日資訊傳回給呼叫它的 Horoscope,setResult 有兩個參數, 第一個參數是回傳結果碼, 系統定義了三個常數 :RESULT_OK (-1), RESULT_CANCELED (0) 與 RESULT_FIRST_USER (1), 事實上使用者可以輸入任何整數去靈活應用此回傳結果碼, 在我們的程式中, 這個回傳結果碼並沒有被用到, 因此填入任何數字都可以 第二個參數是輸入夾帶了生日資訊的 Intent 最後有一個步驟還是要再次提醒讀者, 修改完 SetBirthday.java 後, 千萬要記得 修改 AndroidManifest.xml, 利用 <activity> 標籤將新建立的 Activity 加入 Horoscope.java 這一節我們把焦點放在 Horoscope.java, 其程式主要做了三件事 : 呼叫 SetBirthday 接收來自 SetBirthday 的回傳資料 將星座資訊顯示於畫陎上 在 Horoscope 的畫陎中有一個 設定生日 的按鈕, 按下按鈕後會呼叫 SetBirthday, 因此呼叫 SetBirthday 是寫在按鈕的傾聽者內, 程式碼如下所示 : 1 private OnClickListener setbirthday = new OnClickListener() { 2 public void onclick(view v) { 3 Intent intent = new Intent(); 4 intent.setclass(horoscope.this, SetBirthday.class); 5 startactivityforresult(intent, ACTIVITY_SET_BIRTHDAY); 6 } 7 }; 第 3~4 行我們已經能夠瞭解了, 第 5 行我們使用 startactivityforresult 取代 startactivity, 當您希望被呼叫的 Activity 在結束時能回傳資料的話, 就應該使用 startactivityforresult 方法, 這個方法需要兩個參數, 第一個參數是 Intent, 已經不需再多說, 第二個參數是請求碼, 這個請求碼是用來分辨 Activity 用的, 例如上述的校園導覽系統中, 我們需要設定系所 興趣等, 也就是一個 Activity 可能

17 呼叫了複數個 Activity, 假設每個 Activity 都會回傳資料, 那如何分辨是哪一個 Activity 呼叫的呢? 答案就是利用請求碼, 請求碼是一個整數, 雖然在這個星座程式中, 因為只會呼叫一個新的 Activity, 請求碼其實不重要, 但我們還是要填入一個整數, 在程式中我們另外定義了一個整數常數 ACTIVITY_SET_BIRTHDAY (1) 填入 接下來就是要撰寫接收回傳資料的程式碼,Activity 類別提供了一個 onactivityresult 方法來接收回傳資料, 當被呼叫者那個 Activity 結束時, 系統會執行呼叫者那個 Activity 的 onactivityresult 方法, 程式碼如下所示 : 2 protected void onactivityresult(int requestcode, int resultcode, 3 Intent intent) { 4 int intmonth, intday; 5 6 if (intent == null) return; 7 super.onactivityresult(requestcode, resultcode, intent); 8 switch(requestcode) { 9 case ACTIVITY_SET_BIRTHDAY: 10 intmonth = intent.getintextra("key_month", 1); 11 intday = intent.getintextra("key_day", 1); if (intday < bound[intmonth-1]) { 14 result.settext(resid[intmonth-1]); 15 symbol.setimageresource(sybid[intmonth-1]); 16 } else { 17 if (intmonth == 12) { 18 result.settext(resid[0]); 19 symbol.setimageresource(sybid[0]); 20 } else { 21 result.settext(resid[intmonth]); 22 symbol.setimageresource(sybid[intmonth]); 23 } 24 } 25 break; 26 } 27 } 首先我們來看 2~3 行,onActivityResult 回傳入三個參數, 第一個參數是請求碼,

18 我們可藉著請求碼來判斷資料是哪一個被呼叫 Activity 所回傳的, 第二個參數是結果碼, 還記得在 SetBirthday 中的 RESULT_OK 嗎, 那個就是結果碼, 我們的程式中並沒有去使用結果碼, 第三個參數是 Intent, 回傳的資料可從 Intent 中取得 第 6 行看似簡單, 但不可忽略, 當使用者在 SetBirthday 那個 Activity 中, 並沒有按下按鈕, 而是按下手機上的退回鍵時, 應用程式也會回到 Horoscope 這個 Activity, 此時 intent 的值會是 null, 如此在第 10 行呼叫 getintextra 方法時會發生錯誤, 進而強制關閉程式, 開發者應考慮使用者可能發生的所有狀況, 因此第 6 行的檢查是必要的 由於 Horoscope 的 onactivityresult 是覆寫 Activity 類別的 onactivityresult, 因此第 7 行呼叫父類別的 onactivityresult 方法 在 8~26 中我們利用 switch 敘述來判別是哪一個被呼叫 Activity 所回傳的, 由於本應用程式只呼叫了一個 Activity, 事實上我們根本不需要去判別請求碼, 然而為了完整性, 我們還是加上了 switch 敘述 在 10~11 行中, 我們利用 getintextra 方法取得回傳資料, 並於 13~24 行將星座資訊顯示於畫陎上 6.4 Activity 的生命週期 由於本章的主題是 Activity, 因此本章也將針對 Activity 的生命週期做討論 在 Android 開發者網站中, 有針對 Activity 的狀態與生命週期做詳細的介紹 [4], 為了不讓讀者有太大的負擔, 筆者只針對與生命週期相關的 7 個方法做說明, 這 7 個方法分別為 :oncreate, onstart, onrestart, onresume, onpause, onstop 與 ondestroy, 在詳細解說這 7 個方法之前, 我們先利用一張簡略的圖讓讀者瞭解 Activity 的運作流程, 讀者在閱讀時可配合著此圖瞭解正在解說的方法是位於圖上的哪個位置 oncreate 方法這個方法我們應該已經相當熟悉了, 這個方法會在 Activity 被建立時被呼叫, 我們通常會在這個方法裡做靜態的初始化, 例如建立介陎元件物件 onstart 方法當 Activity 可被使用者看見時, 這個方法會被呼叫 onresume 方法

19 當使用者能與 Activity 互動時, 這個方法會被呼叫 onpause 方法當系統要準備暫時結束目前的 Activity 時, 這個方法會被呼叫 通常用於儲存尚未存檔的資料 結束耗費資源的事情, 例如使用全球定位系統 (GPS, Global Positioning System) 得知目前所在位置是相當耗電能的事情, 因為 GPS 必頇不斷地接收衛星訊號, 以便更新最新位置, 因此可於 onpause 方法內停止位置的更新 onstop 方法當這個 Activity 不再能被使用者看見時, 這個方法會被呼叫 有三種可能 : 新的 Activity 被開始 之前的 Activity 開始恢復至前景 這個 Activity 即將結束 ondestroy 方法當 Activity 要結束前這個方法會被呼叫 onrestart 方法當 Activity 重新被啟動時, 這個方法會被呼叫 例如有電話播進來, 因此原本的 Activity 只好先暫停, 當通話結束, 這個 Activity 要恢復時, 就會呼叫此方法 接下來為了讓讀者對這個流程有更進一步的體驗, 我們利用第五章所提的 Log 類別來實際觀看這 7 個方法的呼叫順序, 請讀者先引進光碟中 \ 程式範例 \Chapter6\AC_Lifecycle 這個專案, 這個應用程式包含了兩個 Activity:Activity1 與 Activity2,Activity1 中有一個按鈕, 此按鈕被按下後會切換到 Activity2; Activity2 也有一個按鈕, 此按鈕被按下後會結束 Activity2 為了觀察方法被呼叫的過程, 我們分別在這兩個 Activity 中覆寫了上述的 7 個方 法, 我們並利用 Log 類別將方法被呼叫的過程顯示於 LogCat 上, 請讀者自行閱 讀 Activity1.java 與 Activity2.java 接下來我們利用兩個實例讓讀者體驗 Activity 的運作流程, 在第一個實例中筆者是這樣操作的 : 執行應用程式後, 按下手機上的退回鍵, 藉著 LogCat, 我們可發現執行應用程式後, 會依順序呼叫 oncreate, onstart 與 onresume, 而在按下手機上的退回鍵後, 則會依順序呼叫 onpause, onstop 與 ondestroy, 與上陎所畫的 Activity 運作流程簡圖相符

20 在第二個實例中我們是這樣操作的 : 執行應用程式後, 按下 To Activity2 按鈕, 出現 Activity2 的畫陎後按下 Return To Activity1 按鈕結束 Activity2 按下 To Activity2 按鈕後, 方法被呼叫的順序為 :Activity1:onPause, Activity2:onCreate, Activity2:onStart, Activity2:onResume, Activity1:onStop, 此時 Activity2 的畫陎會呈現在螢幕上, 接著按下 Return To Activity1 按鈕, 方法被呼叫的順序為 : Activity2:onPause, Activity1:onRestart, Activity1:onStart, Activity1:onResume, Activity2:onStop, Activity2:onDestroy 瞭解方法的呼叫流程, 有助於程式開發者決定該把程式寫在哪一個方法內 6.5 摘要 本章我們針對 Activity 做了詳細的說明 Activity 可視為一個畫陎, 一個應用程式可能會擁有數個畫陎, 亦即數個 Activity, 此時, 如何在程式中切換 Activity 就是本章的一個重點, 當一個 Activity 呼叫另一個 Activity 時, 可以透過 Intent 夾帶資料給被呼叫的 Activity, 而被呼叫的 Activity 也可透過 Intent 回傳資料給呼叫它的 Activity Intent 也是本章的一個重點,Intent 並不是直接在 Activity 間傳送, 而是丟到系統, 再由系統決定適當的 Activity 來處理 本章的最後, 我們簡短地介紹了 Activity 的生命週期, 與 Activity 生命週期相關的方法有 7 個, 瞭

21 解這 7 個方法的呼叫流程, 有助於程式開發者決定該把程式寫在哪一個方法內 6.6 作業 1. 設計兩個畫陎, 在第一個畫陎中, 使用者可以輸入數字 1~12, 接著在按下按鈕後會跳到第二個畫陎, 第二個畫陎會出現月份的英文單字 ( 例如輸入 1 會出現 January), 第二個畫陎也有一個按鈕, 按下後會回到第一個畫陎 請利用 setcontentview 方法來完成 2. 同上題 這次請改用建立兩個 Activity 的方式來完成 3. 設計一個擁有兩個 Activity 的應用程式, 第一個 Activity 有一個 TextView 介陎元件及一個 設定月份 的按鈕, 預設的 TextView 文字為空字串, 按下按鈕後會跳到第二個 Activity, 第二個 Activity 有一個 EditText 介陎元件, 可讓使用者輸入數字, 並有一個 回傳月份 的按鈕, 按下後會檢查使用者輸入, 若沒有問題會將數字回傳給第一個 Activity, 接著第一個 Activity 會將該月份的英文單字顯示於其 TextView 上 6.7 參考資料 [1] Intent Android Developers, [2] IntentFilter Android Developers, [3] The AndroidManifest.xml File Android Developers, [4] Activity Android Developers,

ShareText

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

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

主程式 : 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. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

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

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

Android Service

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

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

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 Fragment

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

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

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

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

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

Database_001

Database_001 作者 : 林致宇日期 :2011/10/26 主要參考來源 : http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applicat ions/ 問題 : 如在存取一個已經建立好的資料庫? 解答 : 有一些應用程式會需要讀取已經建立好的資料庫, 例如一個試題測驗應用程式, 裡面的試題可能已經於電腦上, 使用任何的

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

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

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

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

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

46 2011 11 467 數位遊戲式學習系統 7 2011 11 467 47 3 DBGameSys 48 2011 11 467 正規化資料模組 如何配置並儲存電子化資料 以 便減少資料被重覆儲存的程序 DBGameSys的主要功能模組包 學習者 審核評分模組 含 正規化資料模組 審核評分 模組 高分列表模組3大區塊 系統資料庫 在正規化資料模組的執行 高分列表模組 過程中 先要求學習者瀏覽遊戲

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

建模与图形思考

建模与图形思考 C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性

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

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

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

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 多型 Polymorphism 講師 : 洪安 1 多型 編譯時期多型 ( 靜態多型 ) function overloading 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 其實同 function overloading 執行時期多型 ( 或動態多型 ) 如何正確呼叫不同物件的相同名稱的成員函數 利用繼承與多型 2 子類別與父類別物件間的指定 (assignment)

More information

PowerPoint 簡報

PowerPoint 簡報 Paint 繪圖板 JAVA 程式設計 指導老師 : 鄞宗賢 組員 : 4A3G0901 劉彥佐 4A3G0907 韓偉志 畫面預覽 匯入參數 package paint; import java.awt.*; import java.awt.event.*; import javax.swing.*; 主程式 public class paint{ public static void main(string[]

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

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp 01 1.6 Spyder Anaconda Spyder Python Spyder Python Spyder Spyder 1.6.1 Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Spyder Python File

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089

Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089 Photoshop CC Camera Raw Photoshop Camera Raw Step 1 3 1 2 3 SCOTT KELBY Step 2 B Camera Raw 088 Chapter 3 Camera Raw Chapter 3 Camera Raw Step 3-4 -100 negative clarity +25 ] P / -75-50 Step 4 0 ( 下一頁

More information

1

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

More information

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

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

More information

( )... 5 ( ) ( )

( )... 5 ( ) ( ) 2016 大學校院招收大陸地區學生聯合招生委員會 71005 臺南市永康區南臺街 1 號 E-mail:rusen@stust.edu.tw WEB:http://rusen.stust.edu.tw TEL:+886-6-2435163 FAX:+886-6-2435165 2 0 1 6 0 1 1 9 2016... 2... 3... 5 ( )... 5 ( )... 5 1... 6 2...

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

運算子多載 Operator Overloading

運算子多載 Operator Overloading 函數樣板 (Function Template) 與 類別樣板 (Class Template) 講師 : 洪安 1 資料結構與 C++ 程式設計進階班 為何需要通用函數? (1/2) int abs(int x) { return (x>0)?x:-x; 取名困難不好記 float fabs(float x) { return (x>0)?x:-x; complex cabs(complex x)

More information

封面-12

封面-12 第十二章 701Client TECHNOLOGY CO.,LTD. 701Client 701Server 701Client "701Client", 12-1 :supervisor :supervisor : 1. : 00~99 100 2. : 00~63 ( 63 / / ) 3. : 18 9 4. : 18 9 5. 12-2 TECHNOLOGY CO.,LTD. 701Client

More information

7 TextView tv = (TextView)findViewById(R.id.tv_birthday); 8 9 Context otherapp = null; try { 12 otherapp = createpackagecontext("lincyu.horoscop

7 TextView tv = (TextView)findViewById(R.id.tv_birthday); 8 9 Context otherapp = null; try { 12 otherapp = createpackagecontext(lincyu.horoscop Chapter 12 資料分享 作者 : 林致孙 上一章中我們學到了資料的儲存方式, 也瞭解資料會依應用程式的 Package name 儲存於適當的資料夾內, 然而 Android 並沒有一個共同的儲存空間讓所有應用程式存取, 因此若要讓其它的應用程式使用我的資料, 就必須使用一些技巧, 本章主要在學習資料分享的方式 在先前的章節中已經數次提到, 一個 Android 應用程式是由四個構成要素所組成的

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

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

教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 學校系所 : 樹德科技大學資訊工程學系

教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 學校系所 : 樹德科技大學資訊工程學系 教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 (s11639104@stu.edu.tw) 學校系所 : 樹德科技大學資訊工程學系 實驗目的 本實驗的目的在於讓同學們可以了解 Android 系統核心內部的行程通訊的原理, 透過呼叫系統提供的其中一樣服務

More information

掌盟 SoEasy SDK 开发者帮助文档 1. 接入前项目检查 根据游戏接入后出现的问题, 对游戏项目做以下几点要求 : a) AndroidManifest.xml 中 android:targetsdkversion="19" b) 如果 AndroidManifest.xml 有 insta

掌盟 SoEasy SDK 开发者帮助文档 1. 接入前项目检查 根据游戏接入后出现的问题, 对游戏项目做以下几点要求 : a) AndroidManifest.xml 中 android:targetsdkversion=19 b) 如果 AndroidManifest.xml 有 insta 1. 接入前项目检查 根据游戏接入后出现的问题, 对游戏项目做以下几点要求 : a) AndroidManifest.xml 中 android:targetsdkversion="19" b) 如果 AndroidManifest.xml 有 installlocation 选项时, 参数设置为 auto c) AndroidManifest.xml 中的 Activity 需要进行如下配置 android:configchanges="keyboardhidden

More information

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas Contents 目錄 chapter 1 1-1... 1-2 1-2... 1-3 HTML5... 1-3... 1-5 1-3... 1-9 Web Storage... 1-9... 1-10 1-4 HTML5... 1-14... 1-14... 1-15 HTML5... 1-15... 1-15... 1-16 1-5... 1-18 Apps... 1-18 HTML5 Cache

More information

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

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

More information

幻灯片 1

幻灯片 1 Delivering accurate maps to Chinese Android users 为中国安卓用户提供准确的地图服务 Work at Mapbox includes: Android apps, demos, starter kits, documentation, support, syncing Android team with other departments, etc.

More information

第一章 Android 基礎知識 -UI 設計及語法應用 驗證 Activity A. 解題要項 熟悉新增 Activity 的關鍵步驟以及在清單檔案內的註冊方式 熟悉 Activity 的切換方法與參數傳遞的技巧 熟悉 Activity 回傳結果 ( 含資料 ) 的關鍵步驟與接

第一章 Android 基礎知識 -UI 設計及語法應用 驗證 Activity A. 解題要項 熟悉新增 Activity 的關鍵步驟以及在清單檔案內的註冊方式 熟悉 Activity 的切換方法與參數傳遞的技巧 熟悉 Activity 回傳結果 ( 含資料 ) 的關鍵步驟與接 Android 基礎知識 -UI 設計及語法應用 101. 整存整付計算機 102. 點餐系統 103. 選擇手機型號 104. 手機與平板 UI 佈局 105. 計算 BMI 值 106. 設計 CardView 樣式 107. 驗證 Activity 108. 動態密碼顯示 109. 電影租片清單 110. 自動收合的廣告版位 第一章 Android 基礎知識 -UI 設計及語法應用 1-49

More information

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2 Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790

More information

The Embedded computing platform

The Embedded computing platform Android User Interfaces Hsiao-Lung Chan, Ph.D. Dept Electrical Engineering Chang Gung University, Taiwan chanhl@maili.cgu.edu.tw Basic control components Text components TextView EditText Button compoents

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

CU0594.pdf

CU0594.pdf 8 SOHO 1 3 003 SOHO SOHO Coder Programmer HTML CSS PHP JavaScrip 009 LECTURE 1-1 1 048 PART 2 LECTURE 1-1 1 049 SOHO Landing Page Landing 050 PART 2 LECTURE 1-1 1 SEO SEO P.093 SEO SEO SEO SEO SEO 051

More information

Android 开发教程

Android 开发教程 封面 1 Android 模拟器 模拟器参数 参数格式 emulator [option] [-qemu args] option 选项 -sysdir 为模拟器在 目录中搜索系统硬盘镜像 -system 为模拟器从 文件中读取初始化系统镜像 -datadir 设置用户数据写入的目录 -kernel 为模拟器设置使用指定的模拟器内核

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

Lecture01_Android介绍

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

More information

首先讓我們來看 SimpleGoogleSearch.java, 程式碼如下所示 : 1 public class SimpleGoogleSearch extends Activity { 2 3 EditText et_searchstr; 4 Button btn_search; 5

首先讓我們來看 SimpleGoogleSearch.java, 程式碼如下所示 : 1 public class SimpleGoogleSearch extends Activity { 2 3 EditText et_searchstr; 4 Button btn_search; 5 Chapter 13 網際網路 作者 : 林致孙 網路已成為現今大部份人使用電腦的最大目的, 我們也常利用網路來查詢一些生活資訊, 然而有時當我們想查詢某些資料, 例如火車時刻表, 這時人卻在戶外, 就會感到非常不便, 手機上網解決了這個問題, 因此上網可以說是一個智慧型手機應該具備的基本功能 在這一章中我們將學習一些跟網際網路相關的應用程式, 包含了網頁的瀏覽以及檔案的傳輸 13.1 網頁瀏覽 網頁瀏覽可以說是大部份人上網的最主要行為之一,

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

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

建模与图形思考

建模与图形思考 F06_c 观摩 :ContentProvider 基於軟硬整合觀點 架构與 DB 引擎移植方法 ( c) By 高煥堂 4 通用性基类 ContentProvider 基於軟硬整合觀點 的使用范例 刚才的范例里, 我们直接使用 DataPersist 类的接口来与 SQLite 沟通 本节将替 DataPersist 配上 ContentProvider 基类, 让 Client 能透过 ContentProvider

More information

使用手冊

使用手冊 使用手冊 版權所有 2013 年 Microtek International, Inc. 保留所有權利 商標 Microtek MII MiiNDT ScanWizard Microtek International, Inc. Windows Microsoft Corporation 重要須知 Microtek Microtek Windows Microsoft Windows I49-004528

More information

ACI pdf

ACI pdf 09 9.1 -...9-2 9.1.1...9-2 9.1.2...9-3 9.2 -...9-4 9.2.1 PMT - ()...9-4 9.2.2...9-6 9.3 -...9-8 9.3.1 PMT - ()...9-8 9.4...9-10 9.4.1... 9-11 9.4.2...9-12 9.4.3...9-14 9.5 -...9-17 9.5.1...9-18 1 Excel...9-21

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

Microsoft Word - 第3章 Activity.doc

Microsoft Word - 第3章 Activity.doc 第 3 章 Activity 学习目标 u 掌握 Activity 的生命周期 u 掌握 Activity 的四种启动模式 u 掌握显式意图和隐式意图的使用 u 学会使用 Intent 传递数据在现实生活中, 经常会使用手机进行打电话 发短信 玩游戏等, 这就需要与手机界面进行交互 在 Android 系统中, 用户与程序的交互是通过 Activity 完成的 同时 Activity 也是 Android

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

1. 技術項目簡介 對於應用程式開發人員而言, 其開發程式的執行效能, 攸關使用者的使用意願 故開發時最好能夠兼顧所開發之軟體於執行時期, 對於系統的資源使用情況 本技術可以幫助程式開發人員瞭解所欲開發之應用軟體, 對於系統效能的影響, 進而進行效能改善 有別於市面上的應用程式, 本軟體開發套件可以

1. 技術項目簡介 對於應用程式開發人員而言, 其開發程式的執行效能, 攸關使用者的使用意願 故開發時最好能夠兼顧所開發之軟體於執行時期, 對於系統的資源使用情況 本技術可以幫助程式開發人員瞭解所欲開發之應用軟體, 對於系統效能的影響, 進而進行效能改善 有別於市面上的應用程式, 本軟體開發套件可以 System Monitor for Android SDK 開發者指南說明書 1. 技術項目簡介 對於應用程式開發人員而言, 其開發程式的執行效能, 攸關使用者的使用意願 故開發時最好能夠兼顧所開發之軟體於執行時期, 對於系統的資源使用情況 本技術可以幫助程式開發人員瞭解所欲開發之應用軟體, 對於系統效能的影響, 進而進行效能改善 有別於市面上的應用程式, 本軟體開發套件可以深入到開發者自行定義的功能,

More information

教案模板4-2

教案模板4-2 传智播客 Android 移动应用基础教程 教学设计 课程名称 : Android 移动应用基础教程授课年级 : 2015 年级授课学期 : 2015 学年第一学期教师姓名 : 某某老师 2014 年 10 月 09 日 课题名称第 3 章 Activity 计划学时 8 学时 内容分析 在现实生活中, 经常会使用手机进行打电话 发短信 玩游戏等, 这就需要与手机界 面进行交互 在 Android

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

<4D F736F F D20B5DA36D5C220D7E9BCFEBCE4CDA8D0C52E646F6378>

<4D F736F F D20B5DA36D5C220D7E9BCFEBCE4CDA8D0C52E646F6378> Android 应用程序开发与典型案例 作者 : 华清远见 第 6 章组件间通信 本章简介 在第 5 章的学习中, 主要了解了 Android 程序界面的开发, 包括用户界面基础 用户界面控件的使用 界面布局的特点及使用方法 菜单的使用方法 界面事件的 处理方法等 在此基础上, 本章将对 Android 组件间的通信进行学习, 包括 Intent 进行组件通信的原理 Intent 启动 Activity

More information

範例 \Chapter7\BroadcastSender 這個專案, 並打開 BroadcastSender.java, 這個應用程式有三個按鈕, 按下這三個按鈕後會分別發送出不同的廣播, 之後我們會設計三種接收器 (receiver) 來接收這三種廣播, 由於這三個按鈕的傾聽者的程式碼相當類似,

範例 \Chapter7\BroadcastSender 這個專案, 並打開 BroadcastSender.java, 這個應用程式有三個按鈕, 按下這三個按鈕後會分別發送出不同的廣播, 之後我們會設計三種接收器 (receiver) 來接收這三種廣播, 由於這三個按鈕的傾聽者的程式碼相當類似, Chapter 7 Broadcast Receiver 作者 : 林致孙 在前面的章節, 我們瞭解一個 Android 應用程式是由一個或數個的 Activity 所組成的, 事實上一個 Android 應用程式是由四個構成要素所組成的 : Activity Broadcast Receiver Service Content Provider 一個應用程式不一定要具備所有的構成要素, 例如前面幾章所介紹的應用程式都只包含

More information

Lecture01_Android介绍

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

More information

Android 开发教程

Android 开发教程 封面 1 文件存取编程基础 文件 文件可以用来存储比使用引用更大数量的数据 Android 提供方法来读 写文件 只有本地文件可以被访问 优点 : 可以存储大容量的数据 缺点 : 文件更新或是格式改变可能会导致巨大的编程工作 文件操作 读文件 Context.openFileInput(String name) 打开一个与应用程序联系的私有文件输入流 当文件不存在时抛出 FileNotFoundException

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

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

實作SQLiteOpenHelper類別

實作SQLiteOpenHelper類別 SQLiteOpenHelper 類別存取 SQLite 建國科技大學資管系 饒瑞佶 2013/5 V1 Android 連結資料庫 MySQL SQL Server Web Service 遠端資料庫 Internet Intranet Android SQLite 單機資料庫 Android vs. SQLite 透過 SQLiteOpenHelper 類別來操作 建立資料庫 ( 建構子 ) 建立資料表

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

RAD STUDIO IN THE ENTERPRISE

RAD STUDIO IN THE ENTERPRISE Delphi XE5 深入技術研討會 系列 1 : 深入瞭解 XE5 和移動開發 Agenda 瞭解 Delphi XE5 如何在 Android/iOS 環境中運行 通往 Android/iOS 環境的重要觀念, 類別 / 介面和方法 動態呼叫? 靜態呼叫? 使用幾個實例來說明吧 Delphi XE5 未封裝的 API? BlueTooth? Bar Code? 其他第 3 方函式庫? 結論 瞭解

More information

投影片 1

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

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

Microsoft Word - _m30.doc

Microsoft Word - _m30.doc 1 2 3 4 5 6 7 8 公式 2 4 2 1 能 整除 因此後玩 者贏 且關鍵數 字為3 的倍數 3 0 3 1 不能整除 所 以先拿餘數 2 關鍵數字是 4的倍 數 2 先玩者贏 4 0 4 1 能整除 因此 後玩者贏 且 關鍵數字為 5 的倍數 5 0 5 1 不能整除 所 以先拿餘數 2 關鍵 數字是 6的倍 數 2 先玩者贏 7 0 6 1 能整除 因此 後玩者贏 且 關鍵數字為7

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

More information

第一篇文概說第七章公文的用語及標點符號公本篇內容 第一章 緒論 第二章 公文的意義 第三章 公文與高 普 特各類考試 第四章 公文程式之意義及演變 第五章 公文之分類及其行文系統 第六章 公文之結構與行款 第一篇 第一章緒論 003 第一章緒論 等 等 004 最新應用公文 第一篇 第二章公文的意義 005 第二章公文的意義 第一節 一 須為公務員製作之文書 二 須為公務員 職務上 製作之文書 006

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

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

Android 开发教程

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

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

<4D6963726F736F667420576F7264202D20B5DA33D5C220B3CCD0F2C9E8BCC6BBF9B4A12E646F6378>

<4D6963726F736F667420576F7264202D20B5DA33D5C220B3CCD0F2C9E8BCC6BBF9B4A12E646F6378> Android 应 用 程 序 开 发 与 典 型 案 例 作 者 : 华 清 远 见 第 3 章 程 序 设 计 基 础 本 章 简 介 在 上 一 章 的 学 习 中, 主 要 了 解 了 Eclipse+ADT 的 开 发 流 程, 对 其 有 了 初 步 的 认 识 和 了 解 对 初 学 者 来 说, 这 一 章 的 内 容 比 较 烦 琐, 但 是 又 必 须 掌 握, 这 也 是 进

More information

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制 Java 程式設計 標準輸出入與流程控制 本章大綱 標準輸出入 (Standard I/O) 分支 (Branch) if ~ else switch ~ case 迴圈 (Loop) for while do ~ while 中斷指令 break continue 總整理 標準輸出 定義 : 將資料印到螢幕上 Java 標準輸出指令 System.out.println( 資料 ) 將資料印出後換行

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00 Excel - - Excel - -4-5 840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00 ( 0 ) 智慧標籤 相關說明提示 -5 -- Excel 4 5 6 7 8 + - * / % ^ = < >= & 9 0 (:) (,) ( ) Chapter - :,

More information

Microsoft Word - ACL chapter02-5ed.docx

Microsoft Word - ACL chapter02-5ed.docx 第 2 章神奇的質數 2.1.1 什麼是質數 1 1 1 打下好基礎 - 程式設計必修的數學思維與邏輯訓練 1 1 0 10 2 3 5 7 4 6 8 9 10 4 10000 1229 1000 168 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

1

1 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 8 15 9 10 11 12 13 16 14 17 18 19 20 21 22 15 23 2.3 不同的分析角度 以上種種對影響健康因素的分析 其實來自不同的學說和理論 它們從不同角度分析 健康 建立對健康及影響健康因素的不同理解 這些角度包括 1 生物 2 社 會 3 心理 4 靈性 5 生態及

More information

PowerPoint 簡報

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

More information

2016 勒索軟體白皮書

2016 勒索軟體白皮書 Botnet Botnet 1 1 2 2 5 5 6 9 10 11 11 11 12 12 12 12 12 12 13 14 2016 1989 AIDS AIDS C 189 2005 2006 TROJ_CRYPZIP.A 2011 TROJ_RANSOM.QOWA 12 2012 REVETON 2013 Cryptolocker Cryptolocker AES RSA Cryptolocker

More information

Android 编程基础 Android 开发教程 & 笔记 1

Android 编程基础 Android 开发教程 & 笔记 1 Android 开发教程 & 笔记 1 多式样 ProgressBar 撰写 : 地狱怒兽 联系 :zyf19870302@126.com 普通圆形 ProgressBar 该类型进度条也就是一个表示运转的过程, 例如发送短信, 连接网络等等, 表示一个过程正 在执行中 一般只要在 XML 布局中定义就可以了

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

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc 1.1 组合 Hibernate 与 Spring 1. 在 Eclipse 中, 新建一个 Web project 2. 给该项目增加 Hibernate 开发能力, 增加 Hibernate 相关类库到当前项目的 Build Path, 同时也提供了 hibernate.cfg.xml 这个配置文件 3. 给该项目增加 Spring 开发能力, 增加 spring 相关类库到当前项目的 Build

More information