




已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Android官方開發(fā)教程中文版創(chuàng)建你的第一個App創(chuàng)建你的第一個App歡迎加入Android應(yīng)用開發(fā)。本課程將教你如何創(chuàng)建你的首個Android應(yīng)用。你將學(xué)習(xí)到如何創(chuàng)建Android項目和運行它的可調(diào)試版本。你還會學(xué)習(xí)到Android應(yīng)用設(shè)計的基本原理,包括如何創(chuàng)建簡單用戶界面和處理用戶輸入。在你開始本課程之前,你要確信你的開發(fā)環(huán)境已經(jīng)設(shè)置好,你需要:1 下載Android SDK。2 為Eclipse安裝ADT插件(如果你的IDE是Eclipse)。3 使用SDK Manager下載最新的SDK工具和平臺。如果你還沒有完成這些任務(wù),那么開始下載Android SDK并完成隨后的安裝步驟。一旦你完成安裝,也就做好了開始本課程的準(zhǔn)備工作。本課程采用教程的格式,通過逐步構(gòu)建一個小型的Android應(yīng)用,教你了解一些關(guān)于Android開發(fā)的基本概念,因此,你應(yīng)該遵循教程中的每一個步驟。創(chuàng)建Android項目一個Android項目包含Android應(yīng)用的所有文件以及源代碼。Android SDK工具可以很輕松地使用默認的目錄和文件開始一個新的Android項目。本課程將演示如何使用Eclipse(含ADT插件)或SDK工具從命令行創(chuàng)建新項目。注意:你應(yīng)該已經(jīng)安裝了Android SDK,并且如果你使用的是Eclipse,那么你也應(yīng)該安裝了ADT插件(版本21.0.0或更高),如果你還沒有完成這些,在開始本課程之前請按照前面的指南安裝Android SDK。使用Eclipse創(chuàng)建項目1 在工具樣上點擊New 。2 在出現(xiàn)的窗口中,打開Android文件夾,選擇Android Application Project,點擊Next。3 填寫以下內(nèi)容:l Application Name:用戶看到的應(yīng)用名稱,在本項目中,使用“My First App”。l Project Name:項目目錄的名稱,并且在Eclipse中也能看到的名稱。l Package Name:應(yīng)用的包名(遵循Java程序語言中包的命名規(guī)則)。你的包名在所有安裝到Android系統(tǒng)的包中必須是唯一的,因此,包名最好是你的組織或出版商的域名反轉(zhuǎn)。在本項目中,你可以使用類似“com.example.myfirstapp”的包名。無論如何,你不能使用“com.example”的包命在谷歌發(fā)布你的應(yīng)用。l Minimum Required SDK:你的應(yīng)用支持的Android系統(tǒng)的最低版本和它使用的API級別。為了支持盡可能多的設(shè)備,你應(yīng)該將它設(shè)置為所允許的最低版本以允許你的應(yīng)用提供所有核心功能。如果你的應(yīng)用中某個功能只能在新版本的Android系統(tǒng)中運行,并且它不是核心功能的關(guān)鍵部分,你可以啟用僅在支持的版本上運行該功能(我們將在“支持不同平臺版本”中進一步討論)。本項目中使用默認值。l Target SDK:表示用來測試你的應(yīng)用的Android系統(tǒng)的最高版本和API級別。當(dāng)新的Android系統(tǒng)可用時,你應(yīng)該在新版本上測試你的應(yīng)用并更新這個值以匹配最新的API級別,從而利用新的平臺特性。l Compile With:用以編譯你的應(yīng)用的平臺版本。默認情況下,這會設(shè)置為你的SDK中可用的最新版本的Android系統(tǒng)(應(yīng)該是Android4.1或更高版本,如果你沒這樣一個可用版本,你必須用SDK Manager安裝一個)。你仍然可以創(chuàng)建支持舊版本的應(yīng)用,但把構(gòu)建目標(biāo)設(shè)置為最新版本可以允許你啟用新功能并且在最新設(shè)備上優(yōu)化你的應(yīng)用以便為用戶提供更好的用戶體驗。l Theme:你的應(yīng)用使用的Android界面風(fēng)格。你可以保持默認值。圖一 Eclipse的創(chuàng)建新Android項目的向?qū)c擊Next。4 在配置項目的下一個屏幕中,使用默認選項,點擊Next。5 下一個屏幕可以幫助你為你的應(yīng)用創(chuàng)建一個執(zhí)行圖標(biāo)。你可以用多種方式自定義一個圖標(biāo),用工具為不同屏幕分辨率生成圖標(biāo)。在發(fā)布你的應(yīng)用之前,你應(yīng)該確保你的圖標(biāo)符合設(shè)計指南定義的規(guī)范。點擊Next。6 現(xiàn)在你可以選擇一個Activity模板來創(chuàng)建你的應(yīng)用。本項目中,選擇BlankActivity并且點擊Next。7 為Activity保留默認狀態(tài),點擊Finish。你的Android項目現(xiàn)在設(shè)置了默認文件,準(zhǔn)備開始創(chuàng)建應(yīng)用吧。使用命令行工具創(chuàng)建Android項目如果你沒有使用帶ADT插件的Eclipse,你也可以從命令行使用SDK工具來創(chuàng)建Android項目。1 改變當(dāng)前路徑到Android SDK的tools目錄下。2 執(zhí)行:android list targets這將列出你的SDK已經(jīng)下載的Android平臺,找到你想編譯應(yīng)用的平臺,注意目標(biāo)ID。我們建議你選擇所允許的最高版本,雖然你可以構(gòu)建支持舊版本的應(yīng)用,但設(shè)定為最新版本可以為最新設(shè)備優(yōu)化你的應(yīng)用。如果你沒有看到任何目標(biāo)列表,你需要使用SDK Manager安裝一些平臺。3 執(zhí)行:android create project -target -name MyFirstApp -path /MyFirstApp -activity MainActivity -package com.example.myfirstapp用上面得到的目標(biāo)ID替換,用你想保存Android項目的本地路徑替換。運行你的App如果你按照上一節(jié)課創(chuàng)建了Android項目,它包含了一個默認的“Hello World”源文件,允許你立即運行該應(yīng)用。如何運行你的應(yīng)用依賴兩件事:你是否有一個真實的Android設(shè)備;你是否在使用Eclipse。本節(jié)將演示如何在一個真實的Android設(shè)備或Android模擬器上安裝和運行你的應(yīng)用,以及分別在兩種情況下運行:Eclipse和命令行工具。在運行你的應(yīng)用之前,我們應(yīng)該了解一些有關(guān)Android項目的目錄和文件。AndroidManifest.xml清單文件描述了應(yīng)用的基本特征并定義了它的每個組件,隨著課程的深入,你將了解這個文件中的各種定義。清單文件中最重要的元素之一是元素,它用android:minSdkVersiont和android:targetSdkVersion兩個屬性定義了你的應(yīng)用兼容不同的Android版本。在你的首個App中,它看起來類似這樣: .你應(yīng)該把android:targetSdkVersion設(shè)置的盡可能高并在相應(yīng)的平臺上測試你的應(yīng)用。更多信息請參見“支持不同平臺版本”。src/應(yīng)用的主要源文件的存放目錄。默認情況下,它包含一個當(dāng)通過應(yīng)用圖標(biāo)啟動應(yīng)用時要運行的Activity類。res/包含了幾個和應(yīng)用資源相關(guān)的子目錄,有這么幾個:drawable-hdpi/存放為高分辨率屏幕設(shè)計的可繪制對象(如位圖)。其它以drawable開頭的目錄存放為其它分辨率設(shè)計的資源。layout/存放定義應(yīng)用的用戶界面的文件。values/存放包含其它資源集合的各種XML文件,如字符串和顏色的定義。當(dāng)你構(gòu)建和運行默認Android應(yīng)用時,默認的Activity類會啟動并加載布局文件顯示“Hello World”,結(jié)果雖然平平淡淡,但重要的是,在你開發(fā)之前了解了如何運行你的應(yīng)用。在真實設(shè)備上運行如果你有一部真實的Android設(shè)備,下面將告訴你如何安裝和運行你的應(yīng)用。1 用USB連線連接你的設(shè)備和開發(fā)機器,如果你在Windows下開發(fā),你可能需要為你的設(shè)備安裝合適的USB驅(qū)動程序。要獲得安裝驅(qū)動程序的幫助,請參看OEM USB Drivers文檔。2 在你的設(shè)備上啟用USB debuggingl 大多數(shù)設(shè)備運行Android3.2或更舊的版本,你可以在SettingsApplicationsDevelopment下找到這個選項。l 在Android4.0或更新版本中,這個選項在SettingsDeveloper options中。注意:在Android4.2或更新版本中,Developer options默認是隱藏的,要讓它可見,進入SettingsAbout phone并且輕觸Build number七次,返回上一級屏幕就可以找到Developer options。從Eclipse中運行:1 打開的你項目中的一個文件,并在工具欄上點擊運行。2 在Run as窗口中,選擇Android Application然后點擊OK。Eclipse將把應(yīng)用安裝到你連接的設(shè)備上并啟動它。你也可以從命令行運行你的應(yīng)用1 把路徑改變到你的Android項目的根目錄中,執(zhí)行:ant debug2 確保你的Android SDK platform-tools/目錄在你的PATH環(huán)境變量中,執(zhí)行:adb install bin/MyFirstApp-debug.apk3 在你的設(shè)備上找到MyFirstActivity并打開它。這就是如何構(gòu)建和在設(shè)備上運行你的應(yīng)用,要進入開發(fā),讓我們繼續(xù)下一節(jié)課。在模擬器上運行無論你是使用Eclipse還是命令行,要在模擬器上運行你的應(yīng)用,首先要創(chuàng)建一個Android虛擬設(shè)備(AVD)。一個AVD是Android模擬器的設(shè)備配置,允許你模擬不能的設(shè)備。要創(chuàng)建AVD:1 執(zhí)行Android虛擬設(shè)備管理工具a. 在Eclipse中,點擊工具欄的Android Virtual Device Manager。b. 在命令行中,把路徑改變到/tools/并且執(zhí)行:androiv avd2 在Android虛擬設(shè)備管理工具中,點擊New。3 填寫AVD的詳細信息,給它一個名字,目標(biāo)平臺,SD卡的大小以及皮膚(默認為HVGA)。4 點擊Create AVD。5 在Android虛擬設(shè)備管理工具中選擇新的AVD,點擊Start。6 模擬器啟動之后,解鎖模擬器的屏幕。從Eclipse中運行:1 打開的你項目中的一個文件,并在工具欄上點擊運行。2 在Run as窗口中,選擇Android Application然后點擊OK。Eclipse將把應(yīng)用安裝到模擬器上并啟動它。你也可以從命令行運行你的應(yīng)用4 把路徑改變到你的Android項目的根目錄中,執(zhí)行:ant debug5 確保你的Android SDK platform-tools/目錄在你的PATH環(huán)境變量中,執(zhí)行:adb install bin/MyFirstApp-debug.apk6 在模擬器中找到MyFirstActivity并打開它。這就是如何構(gòu)建和在設(shè)備上運行你的應(yīng)用,要進入開發(fā),讓我們繼續(xù)下一節(jié)課。創(chuàng)建簡單用戶界面Android應(yīng)用的圖形用戶界面是由View和ViewGroup對象組成的層次結(jié)構(gòu)創(chuàng)建的。View對象通常是一個UI部件如button或text field,ViewGroup對象是一個不可見的視圖容器,它定義了子視圖如何布局,如grid或vertical list。Android提供了一個XML詞匯表,對應(yīng)View和ViewGroup的子類,你可以在XML中使用UI元素的層次結(jié)構(gòu)定義自己的用戶界面。圖解ViewGroup對象如何在布局中組織分支以及包含其它View對象在這節(jié)課中,你將創(chuàng)建一個包含button和text field的XML布局。在隨后的課程中,你將響應(yīng)按紐按下時,把text field中的內(nèi)容發(fā)送到另一個Activity。創(chuàng)建線性布局從res/layout/目錄中打開activity_main.xml文件。注意:在Eclipse中,你打開一個布局文件時,首先看到的是圖形布局編輯器。這是一個使用“所見即所得”工具幫助你創(chuàng)建布局的編輯器。在這節(jié)課中,你要直接處理XML,因此點擊屏幕下方的activity_main.xml標(biāo)簽打開XML編輯器。你在創(chuàng)建項目時選擇的BlankActivity模板包含了一個帶相對布局的根視圖和TextView的子視圖的activity_main.xml文件。首先,刪除元素并把元素改為,然后添加android:orientation屬性并把它的值設(shè)為“horizontal”,結(jié)果看來如下所示:LinearLayout是一個視圖組(ViewGroup的子類),它按照android:orientation指定的值在垂直或水平方向上排列子視圖。LinearLayout的每一個子視圖按照它在XML中的順序出現(xiàn)在屏幕上。另外兩個屬性,android:layout_width和android:layout_height用來為所有視圖指定大小。因為LinearLayout是布局的根視圖,它將填充整個屏幕區(qū)域,應(yīng)用的高度和寬度被設(shè)定為“match_parent”,這個值表示視圖將會擴展它的寬度和高度以匹配父視圖的寬度和高度。要了解有關(guān)布局屬性的更多信息,請參見布局指南。添加Text Field要創(chuàng)建一個用戶可編輯的文本域,在中插入一個元素。像每個View對象一樣,你必須定義某些XML屬性以指定EditText對象的屬性。下面是如何在內(nèi)部聲明EditText對象: 有關(guān)這些屬性:android:id它為視圖提供一個唯一標(biāo)識符,以便我們在代碼中引用它,例如讀取或操作視圖對象(我們將下一節(jié)課中了解這些)。符號用來從XML文件中引用任何資源對象,它后面是資源類型(本例中是id類型),斜杠,然后是資源名稱(本例是edit_message)。資源類型前面的加號(+)只有在你首次定義資源ID時才需要它,當(dāng)應(yīng)用編譯時,SDK工具會在項目的gen/R.java文件中使用ID名稱創(chuàng)建一個新的資源ID以引用EditText元素,一旦通過這種方式聲明了資源ID,其它對這個ID的引用都不再需要加號。只有在指定新資源ID時才需要加號,引用具體的資源,如字符串或布局,則不需要加號,詳情請見關(guān)于資源對象。關(guān)于資源對象資源對象使用一個唯一整數(shù)和應(yīng)用的資源關(guān)聯(lián)起來,比如位圖、布局文件或字符串。每一個資源都在項目的gen/R.java文件中定義了一個對應(yīng)的資源對象。你可以使用類R中的對象名引用資源,例如當(dāng)你需要為android:hint屬性指定一個字符串值時。你也可以通過android:id屬性創(chuàng)建一個資源ID來和一個視圖關(guān)聯(lián)起來,這可以使你在代碼中引用這個視圖。每次編譯應(yīng)用時,SDK工具都會生成R.java文件,永遠不要手動修改這份文件。要獲取更多信息,請參考“提供資源”指南。android:layout_width和android:layout_height沒有使用特定大小的高度和寬度,而是用“wrap_content”做為寬高的值,意味著視圖大小會自動匹配內(nèi)容。如果用“match_parent”代替,那么EditText元素將會填充整個屏幕,因為它需要匹配父容器LinearLayout的大小。android:hint當(dāng)文本域的內(nèi)容為空時顯示的默認字符串。使用“string/edit_message”來引用一個在單獨的文件中定義的字符串資源,而不是直接使用硬編碼的字符串。因為這是引用具體的資源(不是定義標(biāo)識符),所以不需要加號。由于我們還沒有定義字符串,你將會看到一個編譯錯誤。我們會在下一節(jié)通過定義字符串來修正它。注意:這個字符串資源和元素ID同名:edit_message,因為引用資源受資源類型(如id或string)限制,所以使用相同名稱不會產(chǎn)生沖突。添加字符串資源當(dāng)你需要在用戶界面中添加文本時,你應(yīng)該為每個字符串指定一個資源。字符串資源允許你在一個地方管理所有的UI文本,方便我們查找和更新文本。外部化字符串還能在你本地化應(yīng)用以支持不同的語言時,為你提供可替換的字符串。默認情況下,你的Android項目包含了一個字符串資源文件:res/values/strings.xml。我們在文件中添加一個新字符串edit_message,把它的值設(shè)為“Enter a message”(你可以刪除”Hello World”字符串)。在這份文件中,我們再為后面要添加的按紐加一個字符串“Send”,取名為“button_send”。最終的string.xml如下所示: My First App Enter a message Send Settings MainActivity要獲得本地化應(yīng)用以支持其它語言的相關(guān)信息,參看支持不同設(shè)備課程。添加Button現(xiàn)在在布局中添加一個,緊隨在元素之后。 因為高寬值設(shè)置為“wrap_content”,按紐的大小將會自動匹配按紐文本。這個按紐不需要android:id屬性,因為代碼中沒有引用它。讓輸入框填充整個屏幕寬度當(dāng)前的布局把EditText和Button都設(shè)計為自動匹配內(nèi)容大小,如下圖所示:這對按紐沒問題,但對文本域就有點不太合適。因為用戶可能會輸入比較長的內(nèi)容,最好能讓文本域填充屏幕上剩余的空間。你可以通過使用android:layout_weight來指定LinearLayout中的weight屬性做到這一點。weight的值是一個數(shù)字,它指定了視圖使用屏幕剩余空間的數(shù)量,這個數(shù)量是相對于其它同級視圖使用的數(shù)量。這有點象飲料配方:2份伏特加,1份咖啡甜酒,意思是一份飲料中,伏特加占了三分之二。例如,你指定一個視圖的weight是2,另一個視圖的weight是1,總和是3,那么第一個視圖將填充剩余空間的三分之二,第二個視圖填充余下的部分。如果再添加第三個視圖并且weight的值為1,那么第一個視圖(weight值為2的那個)將獲得剩余空間的一半,另外兩個視圖每個獲得1/4。任何視圖weight的默認值都是0,所以如果你只為一個視圖的weight值指定大于0的數(shù),那么這個視圖將填充屏幕上去掉其它視圖所占空間后的剩余空間。因此,要讓EditText填充屏幕上的剩余空間,我們只需把它的weight值設(shè)為1并且不去修改Button的weight值。當(dāng)指定了weight的值之后,為了提高布局性能,你應(yīng)該把EditText的width值改為零(0dp)。把寬度設(shè)為0dp有助于改善布局性能,因為設(shè)為”wrap_content”,系統(tǒng)需要計算所需寬度,而設(shè)定了weight的值后,這種計算是沒有意義的,系統(tǒng)最終要根據(jù)其它視圖的寬度來計算剩余空間的寬度。下圖為重新分配了weight值之后的效果:以下是完成后的布局文件: 當(dāng)你創(chuàng)建項目時,SDK工具就把這個布局應(yīng)用到默認的Activity類了,因此你可以運行應(yīng)用察看結(jié)果:1 在Eclipse中,從工具欄中點擊Run 。2 在命令行中,把路徑改變到Android項目的根目標(biāo)中并執(zhí)行:ant debugadb install bin/MyFirstApp-debug.apk繼續(xù)下一節(jié)課,學(xué)習(xí)如何響應(yīng)按紐按下,從文本域從讀取內(nèi)容,啟動另一個Activity等更多內(nèi)容。啟動另一個Activity完成了上一節(jié)課的內(nèi)容后,你已經(jīng)有了一個可以顯示包含文本域和按紐的單個Activity的應(yīng)用。在這節(jié)課中,你將向MainActivity中添加一些代碼,使用戶點擊“發(fā)送“按紐時啟動一個新的Activity。響應(yīng)“發(fā)送”按紐要響應(yīng)按紐的點擊事件,打開activity_main.xml布局文件,并向元素添加android:onClick屬性。android:onClick屬性的值”sendMessage”是當(dāng)用戶點擊按紐時,系統(tǒng)調(diào)用的Activity類中的方法名稱。打開MainActivity類(在項目的src/目錄下),添加相應(yīng)的方法:/* Called when the user clicks the Send button */public void sendMessage(View view) / Do something in response to button這需要你導(dǎo)入View類:import android.view.View;提示:在Eclipse中,按Ctrl + Shift + O導(dǎo)入缺少的類(在Mac中按Cmd + Shift + O)。要讓系統(tǒng)匹配在android:onClick屬性中指定的方法名,方法簽名必須如下所示,具體地說,方法必須:1 是public的2 沒有返回值3 僅有一個View類型的參數(shù)(表示被點擊的View對象)下一步,我們要完成這個方法以讀取文本域的內(nèi)容并把它傳遞到另一個Activity中。創(chuàng)建IntentIntent是一個提供運行時綁定兩個獨立組件(例如兩個Activity)的對象。Intent表示應(yīng)用“想要做點什么”,你可以用它來完成各種任務(wù),但最常用的是用來啟動另一個Activity。在sendMessage()方法中,創(chuàng)建一個Intent對象啟動Activity被稱為DisplayMessageActivity。Intent intent = new Intent(this, DisplayMessageActivity.class);這里使用的構(gòu)造函數(shù)接受兩個參數(shù):l 第一個參數(shù)是一個Context對象(這里使用了this,因為Activity類是Context類的子類)。l 系統(tǒng)要傳遞給Intent對象的應(yīng)用組件的類(本例中,DisplayMessageActivity引用的Activity將被啟動)。注意:如果你使用Eclipse這樣的IDE,DisplayMessageActivity將引發(fā)一個錯誤,因為類還不存在。目前先忽略這個錯誤,我們馬上就會創(chuàng)建這個類。Intent對象不僅可以啟動另一個Activity,還能將數(shù)據(jù)打包傳送到Activity。對sendMessage()方法中,使用findViewById()獲取EditText元素并把它的文本值添加到Intent對象中。Intent intent = new Intent(this, DisplayMessageActivity.class);EditText editText = (EditText) findViewById(R.id.edit_message);String message = editText.getText().toString();intent.putExtra(EXTRA_MESSAGE, message);注意:你現(xiàn)在要導(dǎo)入android.content.Intent和android.widget.EditText這兩個類,還要定義EXTRA_MESSAGE常數(shù)。Intent可以使用鍵值對的方式攜帶各種數(shù)據(jù)類型的,這個數(shù)據(jù)集合被稱為“extras”,putExtra()方法的第一個參數(shù)是鍵,第二個參數(shù)是值。為了在下一個Activity中查詢extra集合的數(shù)據(jù),你應(yīng)該定義一個公用的常數(shù)來表示extra中的鍵,因此我們在MainActivity類的頂部增加一個EXTRA_MESSAGE的聲明。public class MainActivity extends Activity public final static String EXTRA_MESSAGE = com.example.myfirstapp.MESSAGE; .使用應(yīng)用的包名做前綴來定義你的Intent對象的extra鍵是一個好的習(xí)慣,這可以確保在你的應(yīng)用要和其它應(yīng)用交互時,這個鍵是唯一的。啟動第二個Activity要啟動一個Activity,調(diào)用startActivity()方法并把Intent對象傳遞給它。系統(tǒng)將接受到調(diào)用并啟動Intent對象中指定的Activity的實例。用這些新代碼完成sendMessage()方法,現(xiàn)在它看上去應(yīng)該是這樣:public void sendMessage(View view) Intent intent = new Intent(this, DisplayMessageActivity.class);EditText editText = (EditText) findViewById(R.id.edit_message);String message = editText.getText().toString();intent.putExtra(EXTRA_MESSAGE, message);startActivity(intent);現(xiàn)在你需要創(chuàng)建DisplayMessageActivity類了。創(chuàng)建第二個Activity用Eclipse創(chuàng)建新的Activity:1 點擊工具欄上的New 。2 在接下來的窗口中,打開Android文件夾,選擇Android Activity,點擊Next。3 選擇BlankActivity,點擊Next。4 填寫Activity詳細信息:Project:MyFirstAppActivity Name:DisplayMessageActivityLayout Name:activity_display_messageTitle:My MessageHierarchial Parent:com.example.myfirstapp.MainActivityNavigation Type:None點擊Finish。Eclipse中的新Activity向?qū)绻阏谑褂闷渌麵DE和命令行工具,到項目的src/目錄中創(chuàng)建一個新文件命名為DisplayMessageActivity.java。打開DisplayMessageActivity.java文件,如果你是用Eclipse創(chuàng)建的這個Activity:l 類已經(jīng)包含了onCreate()方法的實現(xiàn)l 這里還包含了一個onCreateOptionsMenu()方法的實現(xiàn),但是在這個應(yīng)用中不需要它,你可以刪除它。l 這里還包含了一個onOptionsItemSelected()方法的實現(xiàn),它用來處理操作欄中“Up”的行為,保留它。因為ActionBar API僅在HONEYCOMB(API級別11)或更高版本中支持,你需要在getActionBar()方法外面添加一個條件語句來檢查當(dāng)前平臺版本。附帶地,你還必須在onCreate()方法前添加SuppressLint(“NewApi”)標(biāo)記,以避免Lint錯誤。DisplayMessageActivity類看起來如下所示:public class DisplayMessageActivity extends Activity SuppressLint(NewApi) Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); / Make sure were running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT = Build.VERSION_CODES.HONEYCOMB) / Show the Up button in the action bar. getActionBar().setDisplayHomeAsUpEnabled(true); Override public boolean onOptionsItemSelected(MenuItem item) switch (item.getItemId() case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; return super.onOptionsItemSelected(item); 如果你使用了Eclipse以外的IDE,用上面的代碼更新你的DisplayMessageActivity類。Activity的任何子類都必須實現(xiàn)onCreate()方法。當(dāng)創(chuàng)建Activity新實例時由系統(tǒng)調(diào)用這個方法。你必須這個方法中用setContentView()聲明Activity布局,并對Activity組件進行初始化。注意:如果你使用Eclipse之外的IDE,你的項目中不會包含setContentView()方法所需的activity_display_message布局文件,這沒關(guān)系,稍后你將更新onCreate()方法,不會用到那個布局文件。添加標(biāo)題字符串如果你使用的是Eclipse,你可以跳到下一小節(jié),因為Eclipse已經(jīng)自動為新Activity提供了標(biāo)題字符串。如果你使用的是Eclipse之外的IDE,在strings.xml文件中為新Activity添加標(biāo)題字符串。 . My Message添加到清單文件中所有的Activity都必須在清單文件AndroidMainfest.xml中用元素聲明。當(dāng)你使用Eclipse工具創(chuàng)建Activity時,它會創(chuàng)建默認的條目。如果你使用的是其它IDE,你需要手動在清單文件中添加條目,它看來如下所示: . android:parentActivityName定義了這個Activity在應(yīng)用的邏輯層次中的上級Activity。系統(tǒng)使用這個值來實現(xiàn)默認的導(dǎo)航行為,例如Android4.1或更高版本中的“向上導(dǎo)航”。你可以使用支持庫并添加像這里的元素那樣,為Android舊版本提供同樣的導(dǎo)航行為。注意:你的Android SDK已經(jīng)包含了最新的Android支持庫,它包含在ADT包中。如果你使用不同的IDE,你應(yīng)該在“添加平臺和包”這個步驟中安裝它。當(dāng)使用Eclipse中的模板時,支持庫會自動添加到你的應(yīng)用項目中(你可以在Android Depenencies的列表中看到庫的JAR文件)。如果你使用的不是Eclipse,你需要手動把庫添加的你的項目中。請參考“設(shè)置支持庫”指南。如果你正在使用Eclipse開發(fā),你現(xiàn)在就可以運行應(yīng)用,不過不要期望過高。點擊“發(fā)送”按紐啟動第二個Activity,呈現(xiàn)的是默認的“Hello World”模板提供的布局。你馬上會更新這個Activity,顯示一個自定義的文本視圖來替換它,因此如果你用的不是Eclipse,別擔(dān)心,應(yīng)用還沒有編譯。接收Intent每個Activity都由一個Intent調(diào)用,無論用戶如何導(dǎo)航,你都可以通過調(diào)用getIntent()方法獲得啟動Activity的Intent對象并且接收它包含的數(shù)據(jù)。在DisplayMessageActivity類的onCreate()方法中,獲取Intent對象和MainActivity傳遞過來的消息文本。Intent intent = getIntent();String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);顯示消息文本在屏幕上顯示消息文本,創(chuàng)建一個TextView部件并且使用setText()方法來設(shè)置文本,然后通過setContentView()把它添加為Activity布局的根視圖。DisplayMessageActivity類的onCreate()方法完整的代碼如下:Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); / Get the message from the intent Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); / Create the text view TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); / Set the text view as the activity layout setContentView(textView);現(xiàn)在你可以運行應(yīng)用了,當(dāng)它打開后,在文本域中鍵入消息,點擊Send,消息會顯示在第二個Activity中。就是這樣,你創(chuàng)建了你第一個Android應(yīng)用!要學(xué)習(xí)更多內(nèi)容,跟我們進入下一課吧。添加操作欄添加操作欄操作欄是你能為你的Activity實現(xiàn)的重要的設(shè)計元素之一,它提供了幾種用戶界面特性,使你的應(yīng)用能夠保持和其它應(yīng)用的一致性,以便用戶很快熟悉它。主要功能包括:1 用專門的空間為你的應(yīng)用指定標(biāo)識并且指示出用戶在應(yīng)用中的位置。2 以可預(yù)測的方式訪問重要的操作(如搜索)3 支持導(dǎo)航和視圖切換(使用選項卡或下拉列表)本課程提供了關(guān)于操作欄基礎(chǔ)知識的快速指南,要獲得關(guān)于操作欄各種特性的更多信息,請參考“操作欄”指南。設(shè)置操作欄操作欄的最基本形式是為Activity顯示標(biāo)題以及在標(biāo)題左邊顯示應(yīng)用圖標(biāo)。即使是這種簡單的形式,操作欄也有利于通知用戶當(dāng)前的位置,以及為你的應(yīng)用保持一致性。操作欄包括一個應(yīng)用圖標(biāo)和Activity標(biāo)題設(shè)置一個基本的操作欄需要你的應(yīng)用使用一個Activity主題并啟用操作欄。如何獲取這樣一個主題取決于你的應(yīng)用支持的最低Android版本。因此這節(jié)課根據(jù)你的應(yīng)用支
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市污水處理廠智能化升級改造與水資源循環(huán)利用研究報告
- 2025年農(nóng)村職業(yè)教育與培訓(xùn)教育資源優(yōu)化配置策略研究報告
- 第三單元 第1課時 認識立體圖形(教學(xué)設(shè)計)一年級數(shù)學(xué)上冊同步高效課堂系列(蘇教版2024秋)
- 第十七課 拒絕懶惰和拖延說課稿-2025-2026學(xué)年初中心理健康北師大版2013八年級上冊-北師大版2013
- 2025年智慧環(huán)保行業(yè)前景分析及投資機遇研究報告
- (2025年標(biāo)準(zhǔn))華為 聘用協(xié)議書
- 2025年小家電行業(yè)當(dāng)前發(fā)展現(xiàn)狀及增長策略研究報告
- 2025年航空涂料行業(yè)規(guī)模分析及投資前景研究報告
- (2025年標(biāo)準(zhǔn))和學(xué)生簽協(xié)議書
- 2025年ATM機行業(yè)投資趨勢與盈利模式研究報告
- 管網(wǎng)工程施工組織設(shè)計與管理
- 幼兒園開學(xué)園長會議發(fā)言稿模版
- 2025年大學(xué)輔導(dǎo)員選拔考試題庫:學(xué)生綜合素質(zhì)評價體系評價方法試題
- 酒店前臺接待流程及話術(shù)
- 2025第三屆全國技能大賽競賽(裝配鉗工賽項)省選拔賽考試題庫(含答案)
- GB/Z 27001-2025合格評定通用要素原則與要求
- 2025年第九屆“學(xué)憲法、講憲法”活動知識競賽測試題庫及答案
- 銀行規(guī)范服務(wù)禮儀培訓(xùn)
- 嘉興市昊鳴紡織有限公司年產(chǎn)480萬米高檔紡織真絲面料技改項目環(huán)評報告
- 2025四川眉山市國有資本投資運營集團有限公司招聘50人筆試參考題庫附帶答案詳解
- 機車信號杜斌剛課件
評論
0/150
提交評論