外文翻譯Android(安桌)_第1頁(yè)
外文翻譯Android(安桌)_第2頁(yè)
外文翻譯Android(安桌)_第3頁(yè)
外文翻譯Android(安桌)_第4頁(yè)
外文翻譯Android(安桌)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、android起航譯使用xml進(jìn)行布局雖然純粹通過(guò)java代碼在activity上創(chuàng)建和添加部件,在技術(shù)上是可行的,我們?cè)诘?章中做的一樣,更常見(jiàn)的方法是使用一種基于xml的布局文件。動(dòng)態(tài)的小部件實(shí)例保留更多,情況復(fù)雜,小工具在編譯時(shí)不為人所知(例如,在數(shù)據(jù)檢索了互聯(lián)網(wǎng)基礎(chǔ)上將單選按鈕填充柱??紤]到這一點(diǎn),現(xiàn)在是時(shí)候打破xml來(lái)學(xué)習(xí)如何用此種方式來(lái)布置android activities。什么是基于xml的布局?正如其名稱(chēng)所示,一個(gè)基于xml的布局是一個(gè)關(guān)系到每個(gè)規(guī)格的小部件,和他們的容器(更多關(guān)于此內(nèi)容的在第7章)編碼的xml格式。具體來(lái)說(shuō),android認(rèn)為基于xml的布局是資源,因此布局

2、文件存儲(chǔ)在res /在你的android項(xiàng)目布局目錄中。每個(gè)xml文件包含一個(gè)指定的部件和容器布局元素樹(shù),一種意見(jiàn)認(rèn)為構(gòu)成層次。對(duì)xml元素的屬性,描述一個(gè)部件應(yīng)如何看或者一個(gè)容器應(yīng)如何運(yùn)轉(zhuǎn)。例如,如果一個(gè)按鈕元素。有一個(gè)android的屬性值:文字樣式=“bold”,這意味著該文本出現(xiàn)在按鈕的表面應(yīng)該是呈現(xiàn)一個(gè)粗體字體樣式.android的sdk中附帶一個(gè)使用的布局的工具(aapt)。這個(gè)工具應(yīng)自動(dòng)調(diào)用你的android工具鏈(例如,eclipse中,ants build.xml)。作為一個(gè)開(kāi)發(fā)人員,尤其重要的是,在您的項(xiàng)目中aapt生成r.java源文件,讓您能在那些布局中直接從java代

3、碼中獲取布局和部件。為什么使用基于xml的布局?使用xml布局文件做的大部分都可以通過(guò)java代碼。例如,你可以使用settypeface()命令一個(gè)按鈕使用粗體文本,而不是在一個(gè)xml布局中使用屬性。由于xml布局是為你跟蹤的另一個(gè)文件,所以我們需要好的理由來(lái)使用這樣的文件。也許最大的原因是為了在視圖定義中協(xié)助工具的建立,如ide中一個(gè)gui創(chuàng)建者像eclipse或者一個(gè)像droiddraw1設(shè)計(jì)gui圖形用戶(hù)界面建設(shè)者。這樣gui建設(shè)者們,在原則上,生成java代碼而不是xml。目前的挑戰(zhàn)是重新閱讀用戶(hù)界面的定義,以支持編輯,也就是說(shuō),如果是像xlm的結(jié)構(gòu)公式數(shù)據(jù)比一個(gè)程序語(yǔ)言中的數(shù)據(jù)簡(jiǎn)單

4、的多。此外,保持生成的xml定義從手寫(xiě)的java代碼中分離,使得某人定制的來(lái)源意外重新生成不太可能。xml形成一個(gè)良好的中間立場(chǎng),使工具作家使用更簡(jiǎn)便,程序員需要時(shí)手工工作更簡(jiǎn)易。此外,xml作為一個(gè)gui定義格式是越來(lái)越普遍。微軟的xaml,adobe的flex,和mozilla的xul都采取android類(lèi)似的方法:把布局細(xì)節(jié)放在一個(gè)xml文件和把編程智慧資料放在源文件(例如,xul中的javascript)。許多不太知名的圖形用戶(hù)界面框架,如zk,還使用視圖定義的xml。而“隨大流”并不一定是最好的政策,但他們有優(yōu)勢(shì)幫助從任何其他xml為中心的觀點(diǎn)描述語(yǔ)言輕松進(jìn)入android。好了,那

5、么基于xml的布局是什么樣子的?下面是以前的章節(jié)的示例應(yīng)用程序按鈕,轉(zhuǎn)換成一個(gè)xml布局文件,布局/ nowredux示例項(xiàng)目,在這一章中可以找到源代碼的領(lǐng)域。 部件,按鈕的類(lèi)名稱(chēng)形成xml元素的名稱(chēng)。因?yàn)榘粹o是android提供的部件,我們可以只使用裸類(lèi)的名稱(chēng)。如果您創(chuàng)建自己的部件作為android.view.view子小部件,您也將需要提供一個(gè)完整的包聲明(如monsware.android.mywidget)。根元素需要android的xml命名空間聲明:xmlns:android=所有其他要素將成為子根并繼承該命名空間的聲明。因?yàn)槲覀円眠@個(gè)來(lái)自java代碼的按鈕,我們需要通過(guò)and

6、roid給它一個(gè)標(biāo)識(shí)符:id屬性。我們將在本章后面更詳細(xì)的介紹這個(gè)概念。其余的屬性是此按鈕實(shí)例屬性:android:文字表示的初始文本將顯示在按鈕(這種情況顯示空字符串)android:layout_width和android:layout_height命令android有按鈕的寬度和高度填寫(xiě) “parent”,這種情況下,整個(gè)屏幕。將這些屬性將在第7章中詳解。由于這個(gè)單一部件是activity的僅有內(nèi)容,我們只需要這一個(gè)因素。復(fù)雜的用戶(hù)界面將需要整個(gè)樹(shù)的元素,代表工具和容器,控制自己的定位。所有的這本書(shū)余下的章節(jié)將使用xml布局,所以還有數(shù)十種更復(fù)雜的其他布局實(shí)例,請(qǐng)前進(jìn)到第七章仔細(xì)閱讀。符

7、號(hào)有什么用途?許多部件和容器只需要出現(xiàn)在xml布局文件,不須引用在java代碼。例如,一個(gè)靜態(tài)標(biāo)簽(textview)只需要在布局文件中以表明它應(yīng)該出現(xiàn)在那里。在xml文件中各種元素文件不需要有android:id屬性給他們一個(gè)名稱(chēng)。任何你想要在java資源中使用的東西,都需要一個(gè)android:id.該公約是使用 +id.作為id值,其中的.代表你locallyunique名稱(chēng)有問(wèn)題的部件。在上一節(jié)的xml布局的例子中, +id是按鈕控件的標(biāo)識(shí)符。android提供了一些特殊的android:id值,形式android:id/.我們將在這本書(shū)的不同章節(jié)中看到這些,例如第八章和第十章。我們將這

8、些附加到j(luò)ava如何?既然你有意建立一個(gè)xml配置文件的工具和容器,名為main.xml存儲(chǔ)res/layout,所有你需要的是一個(gè)在您activity的oncreate()回調(diào)以使用該版式:setcontentview(r.layout.main);這是相同的setcontentview(),我們前面使用,通過(guò)它的一個(gè)視圖子類(lèi)的實(shí)例(在這種情況下,一個(gè)按鈕)。該android制造的觀點(diǎn),來(lái)自我們的布局,是從訪(fǎng)問(wèn)該代碼生成的r類(lèi)。所有的布局都可以訪(fǎng)問(wèn)r.layout,由基地鍵控布局文件的名稱(chēng)- main.xml result in r.layout.main.要訪(fǎng)問(wèn)確定部件,使用findvie

9、wbyid(),在數(shù)字標(biāo)識(shí)符傳遞有問(wèn)題的部件。這一數(shù)字標(biāo)識(shí)符生成的r類(lèi)由android在r.id.something(其中一些是你正在尋找的具體部件)。這些部件是只是子類(lèi)的視圖,就像我們?cè)诘谒恼轮袆?chuàng)建button實(shí)例。剩下的部分在原始的now演示中,按鈕的表面便會(huì)顯示當(dāng)前的時(shí)間,這將反映當(dāng)按鈕被最后按下時(shí)顯示的時(shí)間(或者如果在按鈕尚未被按下時(shí)顯示)。這種邏輯仍然適用,即使在該修訂演示(nowredux)中。盡管如此,在activitys oncreate() callback中的實(shí)例,我們可以從xml的布局參考一個(gè)例子:package monsware.android.layouts;impo

10、rt android.app.activity;import android.os.bundle;import android.view.view;import android.widget.button;import java.util.date;public class nowredux extends activityimplements view.onclicklistener button btn;overridepublic void oncreate(bundle icicle) super.oncreate(icicle);setcontentview(r.layout.mai

11、n);btn=(button)findviewbyid(r.id.button);btn.setonclicklistener(this);updatetime();public void onclick(view view) updatetime();private void updatetime() btn.settext(new date().tostring();第一個(gè)區(qū)別是,在java代碼中設(shè)置內(nèi)容視圖作為視圖,我們將它設(shè)置為引用的xml布局(setcontentview(r.layout.main)。該r.java源文件將被更新,當(dāng)我們重建這個(gè)項(xiàng)目,包括對(duì)我們布局參考文件(存儲(chǔ)在m

12、ain.xml in our projects res/layout directory )。另一個(gè)不同是,我們需要親手實(shí)驗(yàn)按鈕實(shí)例,我們使用findviewbyid()調(diào)用。既然我們發(fā)現(xiàn)按鈕為 +id/button,我們可以參考按鈕的標(biāo)識(shí)符r.id.button?,F(xiàn)在,隨著手手頭上的實(shí)例,我們可以設(shè)置回調(diào)并根據(jù)需要設(shè)置標(biāo)簽。正如你可以看到如圖5-1,結(jié)果看起來(lái)與原始的now演示一樣。圖5-1 樣本的nowredux活動(dòng)使用基本部件每一個(gè)gui工具包都有一些基本的部件:字段,標(biāo)簽,按鈕等,android的工具包在范圍內(nèi)沒(méi)有不同,其基本部件將提供一個(gè)良好的介紹,關(guān)于這些部件在android ac

13、tivities中是如何運(yùn)行的。指派標(biāo)簽最簡(jiǎn)單的部件是標(biāo)簽,在android提到的作為一個(gè)textview。像大多數(shù)的gui工具包,標(biāo)簽的文本是不可被用戶(hù)直接編輯的。通常情況下,它們被用來(lái)確定相鄰部件(例如,一個(gè)“姓名:”一個(gè)填充姓名前的標(biāo)簽)。在java中,你可以通過(guò)創(chuàng)建一個(gè)textview的實(shí)例l來(lái)創(chuàng)建一個(gè)標(biāo)簽。更常見(jiàn)的,雖然,你將通過(guò)添加一個(gè)textview元素到布局來(lái)在xml布局文件中創(chuàng)建標(biāo)簽,與一個(gè)android:文本屬性來(lái)設(shè)置標(biāo)簽的本身價(jià)值。如果您需要交換基于某些標(biāo)準(zhǔn)的標(biāo)簽,例如國(guó)際化,你可能想使用xml中的資源參考代替,這些將在第9章敘述。 textview有許多相關(guān)的其他標(biāo)簽屬

14、性,如: android:typeface to set the typeface to use for the label (e.g., monospace) android:textstyle to indicate that the typeface should be made bold (bold), italic (italic),or bold and italic (bold_italic) android:textcolor to set the color of the labels text, in rgb hex format (e.g., #ff0000for red

15、)例如,在basic/label項(xiàng)目中,你將找到下列布局文件:正如你看到的圖6-1,圖6-1 示例應(yīng)用程序的labeldemo只是單獨(dú)的布局,由android的項(xiàng)目生成器提供的java源的(如activitycreator),生成應(yīng)用程序。按鈕,歸屬于誰(shuí)?我們已經(jīng)在第4和第5章看到了按鈕部件用法。按鈕是文本視圖的一個(gè)子類(lèi),所以一切都在上一節(jié)討論了,按鈕格式所面臨的問(wèn)題仍然成立。短暫的圖像 android有兩個(gè)部件,來(lái)幫助你將照片嵌入activities:imageview和imagebutton。正如名稱(chēng)所暗示的,他們是分別對(duì)于文本視圖和按鈕基于圖像的類(lèi)似物。每個(gè)部件帶有一個(gè)android:s

16、rc屬性(在一個(gè)xml布局中),指明使用什么圖片。這些通常引用一個(gè)可繪制的資源,在講資源的這個(gè)章節(jié)中更詳細(xì)地描述了。您還可以通過(guò)setimageuri()從內(nèi)容提供商在uri基礎(chǔ)上設(shè)置圖像。 imagebutton控件,一個(gè)imageview子類(lèi),混合在標(biāo)準(zhǔn)按鈕行為中,應(yīng)對(duì)點(diǎn)擊和諸如此類(lèi)的東西。例如,從basic/imageview樣本項(xiàng)目中看main.xml布局,這可以在以及所有其他代碼示例種找到。結(jié)果,只用代碼生成activity,如圖6-2所示。圖6-2 示例應(yīng)用程序的imageviewdemo綠色字段或者其他色彩緊接著按鈕和標(biāo)簽,字段是大多數(shù)gui工具包的第三個(gè)“錨”。在android

17、中,他們通過(guò)edittext部件運(yùn)行,它是標(biāo)簽的一個(gè)子類(lèi)textview。隨著標(biāo)準(zhǔn)textview屬性(例如,android:文本樣式),edittext有許多其他方面可以幫助你創(chuàng)建字段,包括: android:autotext, to control if the field should provide automatic spelling assistance android:capitalize, to control if the field should automatically capitalize the first letterof entered text (e.g.,

18、first name, city) android:digits, to configure the field to accept only certain digits android:singleline, to control if the field is for single-line input or multiple-line input(e.g., does move you to the next widget or add a newline?)除了這些,你可以使用專(zhuān)門(mén)配置字段輸入方法,如android:僅數(shù)字輸入numeric,android:為籠罩密碼輸入密碼,還有a

19、ndroid:phonenumber進(jìn)入電話(huà)號(hào)碼。如果你想創(chuàng)建自己的輸入法計(jì)劃(如郵政編碼,社會(huì)安全號(hào)碼),您需要?jiǎng)?chuàng)建自己的執(zhí)行情況inputmethod接口,然后通過(guò)android設(shè)定字段來(lái)使用:inputmethod。例如,從the basic/field項(xiàng)目,這里是一個(gè)xml布局文件顯示 edittext:請(qǐng)注意android:singleline是錯(cuò)誤的,因此,用戶(hù)將能夠輸入幾行文字。對(duì)于這一項(xiàng)目,fielddemo.java文件填充了一些散文輸入欄:package monsware.android.basic;import android.app.activity;import an

20、droid.os.bundle;import android.widget.edittext;public class fielddemo extends activity overridepublic void oncreate(bundle icicle) super.oncreate(icicle);setcontentview(r.layout.main);edittext fld=(edittext)findviewbyid(r.id.field);fld.settext(licensed under the apache license, version 2.0 +(the lic

21、ense); you may not use this file +except in compliance with the license. you may +obtain a copy of the license at +/licenses/license-2.0);結(jié)果,一旦建成并投入安裝成模擬器,如圖6-3所示。圖6-3 示例應(yīng)用程序的fielddemo注意:android的模擬器只允許在每一個(gè)獨(dú)特的java包發(fā)射器中應(yīng)發(fā)射用。由于本章中的所有演示共享monsware.android.basic包,您將只能在你的模擬器發(fā)射的任何時(shí)候的看到這些

22、演示之一。另一個(gè)字段的特色,提供自動(dòng)完成,以幫助用戶(hù)在整個(gè)無(wú)文本輸入一個(gè)值。這是作為autocompletetextview部件在android中提供的并將在第8章討論。另一種復(fù)選框經(jīng)典的復(fù)選框有兩種狀態(tài):選中的和未選中的。在這兩種狀態(tài)之間點(diǎn)擊復(fù)選框切換來(lái)指示選擇(例如,“添加快遞到我的命令”)。在android中,還有一個(gè)checkbox控件,以滿(mǎn)足這種需要。它作為一個(gè)textview先驅(qū),因此您可以像android使用textview性能:格式部件添加文字顏色。在java中,你可以調(diào)用: ischecked() to determine if the checkbox has been c

23、hecked setchecked() to force the checkbox into a checked or unchecked state toggle() to toggle the checkbox as if the user checked it此外,當(dāng)復(fù)選框的狀態(tài)發(fā)生改變時(shí),你可以注冊(cè)一個(gè)偵聽(tīng)器(這種情況下,一個(gè)oncheckedchangelistener實(shí)例)來(lái)提醒。例如,從the basic/checkbox的項(xiàng)目,這里是一個(gè)簡(jiǎn)單的復(fù)選框的布局:相應(yīng)的checkboxdemo.java檢索和配置checkbox的行為:public class checkboxdem

24、o extends activityimplements compoundbutton.oncheckedchangelistener checkbox cb;overridepublic void oncreate(bundle icicle) super.oncreate(icicle);setcontentview(r.layout.main);cb=(checkbox)findviewbyid(r.id.check);cb.setoncheckedchangelistener(this);public void oncheckedchanged(compoundbutton butto

25、nview,boolean ischecked) if (ischecked) cb.settext(this checkbox is: checked);else cb.settext(this checkbox is: unchecked);請(qǐng)注意為復(fù)選框的狀態(tài)變化activity作為其自身監(jiān)聽(tīng)器,因?yàn)樗鼒?zhí)行oncheckedchangelistener 分界面(通過(guò)cb.setoncheckedchangelistener(this))?;卣{(diào)偵聽(tīng)器在oncheckedchanged(),它接收復(fù)選框的狀態(tài)有什么新的變化和狀態(tài)。在這種情況下,我們更新了文本的復(fù)選框來(lái)反映復(fù)選框中包含的實(shí)際內(nèi)

26、容。結(jié)果呢?點(diǎn)擊復(fù)選框立即更新其內(nèi)容,你可以看圖6-4和6-5。 圖6-4 checkboxdemo示例應(yīng)用程序,未選中的復(fù)選框 圖6-5 同樣的應(yīng)用,選中的復(fù)選框打開(kāi)收音機(jī)由于與其他單選按鈕在其他工具包執(zhí)行時(shí),android的單選按鈕是兩種狀態(tài),如復(fù)選框,但可分為這樣,只有一組中的單選按鈕可以隨時(shí)選中。像復(fù)選框,radiobutton從compoundbutton中繼承,從而繼承了textview。因此,所有的標(biāo)準(zhǔn)textview的字體,樣式,顏色等特性,可用于控制單選按鈕的外觀。同樣,您可以在一個(gè)單選按鈕上調(diào)用ischecked(),看看它是否被選中,切換()來(lái)選擇它,等等,就像你可以用一

27、個(gè)復(fù)選框。大多數(shù)時(shí)候,你會(huì)想要在radiogroup里面放進(jìn)一個(gè)radiobutton的小部件。該radiogroup表明其狀態(tài)的單選按鈕設(shè)置聯(lián)系在一起,這意味著只有一個(gè)按鈕退出組可以在任何時(shí)間選擇。如果您指派一個(gè)android:在您的xml布局中id到你的radiogroup,您可以訪(fǎng)問(wèn)您的java代碼和調(diào)用組: check() to check a specific radio button via its id (e.g., group.check(r.id.radio1) clearcheck() to clear all radio buttons, so none in the g

28、roup are checked getcheckedradiobuttonid() to get the id of the currently-checked radio button (or -1 ifnone are checked)例如,the basic/ radiobutton的示例應(yīng)用程序,這里是一個(gè)xml布局顯示一個(gè)radiogroup包裝的radiobutton的部件集合:圖6-6顯示了使用android生成的java項(xiàng)目和此布局的結(jié)果 圖6-6 示例應(yīng)用程序的radoibuttondemo請(qǐng)注意,單選按鈕組最初設(shè)置為在一開(kāi)始就完全暢通無(wú)阻。預(yù)先設(shè)定的一個(gè)單選按鈕被選中,在

29、radiobutton上使用setchecked()或從您的oncreate()在activity中回調(diào),在radiogroup上選中()。所有部件,包括以前的那些示例,擴(kuò)展視圖,這樣使所有部件一系列有用的性能,并超越那些已經(jīng)介紹的方法。視圖中最有可能被使用的某些屬性,包括: controls the focus sequence: android:nextfocusdown android:nextfocusleft android:nextfocusright android:nextfocusup android:visibility, which controls whether th

30、e widget is initially visible android:background, which typically provides an rgb color value (e.g., #00ff00 for green)to serve as the background for the widget您可以切換是否通過(guò)setenabled()啟用了一個(gè)小裝置,看看它是否是通過(guò)isenabled()啟用的。這是禁用一個(gè)復(fù)選框或單選按鈕選擇一些小部件的常用方式。你可以通過(guò)requestfocus()給出一個(gè)部件重點(diǎn),看看它是否是通過(guò)isfocused()為重點(diǎn)。你可能會(huì)如前所述用

31、禁用插件來(lái)使用,以確保一旦您禁用操作完成,正確的部件具有焦點(diǎn)。為了幫助操縱部件樹(shù)和容器,組成一個(gè)activity的整體視圖,你可以使用: getparent() to find the parent widget or container findviewbyid() to find a child widget with a certain id getrootview() to get the root of the tree (e.g., what you provided to the activity viasetcontentview()beginning androidmark

32、l. murphy writeusing xml-based layoutswhile it is technically possible to create and attach widgets to our activity purely through java code, the way we did in chapter 4, the more common approach is to use an xml-based layout file. dynamic instantiation of widgets is reserved for more complicated sc

33、enarios, where the widgets are not known at compile-time (e g., populating a column of radio buttons based on data retrieved off the internet). with that in mind, its time to break out the xml and learn how to lay out android activities that way. what is an xml-based layout? as the name suggests, an

34、 xml-based layout is a specification of widgets relationships to each otherand to their containers (more on this in chapter 7)encoded in xml format. specifically, android considers xml-based layouts to be resources, and as such layout files are stored in the res/layout directory inside your android

35、project. each xml file contains a tree of elements specifying a layout of widgets and their containers that make up one view hierarchy. the attributes of the xml elements are properties, describing how a widget should look or how a container should behave. for example, if a button element has an att

36、ribute value of android:textstyle = bold, that means that the text appearing on the face of the button should be rendered in a boldface font style. androids sdk ships with a tool (aapt) which uses the layouts. this tool should be automatically invoked by your android tool chain (e.g., eclipse, ants

37、build.xml). of particular importance to you as a developer is that aapt generates the r.java source file within your project, allowing you to access layouts and widgets within those layouts directly from your java code. why use xml-based layouts? most everything you do using xml layout files can be

38、achieved through java code. for example, you could use settypeface() to have a button render its text in bold, instead of using a property in an xml layout. since xml layouts are yet another file for you to keep track of, we need good reasons for using such files. perhaps the biggest reason is to as

39、sist in the creation of tools for view definition, such as a gui builder in an ide like eclipse or a dedicated android gui designer like droiddraw1. such gui builders could, in principle, generate java code instead of xml. the challenge is re-reading the ui definition to support editsthat is far sim

40、pler if the data is in a structured format like xml than in a programming language. moreover, keeping generated xml definitions separated from hand-written java code makes it less likely that somebodys custom-crafted source will get clobbered by accident when the generated bits get re-generated. xml

41、 forms a nice middle ground between something that is easy for tool-writers to use and easy for programmers to work with by hand as needed. also, xml as a gui definition format is becoming more commonplace. microsofts xaml2, adobes flex3, and mozillas xul4 all take a similar approach to that of andr

42、oid: put layout details in an xml file and put programming smarts in source files (e.g., javascript for xul). many less-well-known gui frameworks, such as zk5, also use xml for view definition. while “following the herd” is not necessarily the best policy, it does have the advantage of helping to ea

43、se the transition into android from any other xml-centered view description language. ok, so what does it look like? here is the button from the previous chapters sample application, converted into an xml layout file, found in the layouts/nowredux sample project. this code sample along with all othe

44、rs in this chapter can be found in the source code area of . the class name of the widgetbuttonforms the name of the xml element. since button is an android-supplied widget, we can just use the bare class name. if you create your own widgets as subclasses of android.view.view, you would need to prov

45、ide a full package declaration as well.the root element needs to declare the android xml namespace: xmlns:android= all other elements will be children of the root and will inherit that namespace declaration. because we want to reference this button from our java code, we need to give it an identifie

46、r via the android:id attribute. we will cover this concept in greater detail later in this chapter. the remaining attributes are properties of this button instance: android:text indicates the initial text to be displayed on the button face (in this case, an empty string) android:layout_width and and

47、roid:layout_height tell android to have the buttons width and height fill the “parent”, in this case the entire screenthese attributes will be covered in greater detail in chapter 7. since this single widget is the only content in our activity, we only need this single element. complex uis will requ

48、ire a whole tree of elements, representing the widgets and containers that control their positioning. all the remaining chapters of this book will use the xml layout form whenever practical, so there are dozens of other examples of more complex layouts for you to peruse from chapter 7 onward. whats

49、with the signs? many widgets and containers only need to appear in the xml layout file and do not need to be referenced in your java code. for example, a static label (textview) frequently only needs to be in the layout file to indicate where it should appear. these sorts of elements in the xml file

50、 do not need to have the android:id attribute to give them a name. anything you do want to use in your java source, though, needs an android:id. the convention is to use +id/. as the id value, where the . represents your locallyunique name for the widget in question. in the xml layout example in the preceding section, +id/button is the identifier for the button widget. android provides a few special android:id values, of the form android:id/. we will see some of these in various chapters of this book, such as chapters 8 and 10. we attach these to the java how?given that

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論