2018android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程源碼與-第三章_第1頁(yè)
2018android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程源碼與-第三章_第2頁(yè)
2018android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程源碼與-第三章_第3頁(yè)
2018android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程源碼與-第三章_第4頁(yè)
2018android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程源碼與-第三章_第5頁(yè)
已閱讀5頁(yè),還剩140頁(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)介

第3章

Android布局與基本組件3.1Android用戶(hù)界面的組件和容器

在設(shè)計(jì)Android應(yīng)用程序時(shí),用戶(hù)接口(UserInterface,UI)是非常重要的一部分,因?yàn)橛脩?hù)對(duì)應(yīng)用程序的第一印象就源于此。同時(shí)UI的設(shè)計(jì)也是一項(xiàng)相當(dāng)繁瑣和有難度的工作。

例如UI大小必須適應(yīng)各類(lèi)屏幕分辨率的設(shè)備,并是自動(dòng)調(diào)整而不是由用戶(hù)去設(shè)定。

又如UI的設(shè)計(jì)和具體功能的實(shí)現(xiàn)需要在邏輯上進(jìn)行分離,從而使UI設(shè)計(jì)者和程序開(kāi)發(fā)者能夠相對(duì)獨(dú)立的工作,提高工作的效率,也避免在后期維護(hù)時(shí)功能的修改對(duì)UI設(shè)計(jì)的影響。3.2文本控件的功能與使用方法1、TextView的XML使用當(dāng)創(chuàng)建完第一個(gè)Android項(xiàng)目后,Eclipse會(huì)自動(dòng)把界面跳轉(zhuǎn)到UI設(shè)計(jì)頁(yè)面。在UI設(shè)計(jì)頁(yè)的正中可以看到已經(jīng)有一串“HelloWorld”的字符,并在該頁(yè)的最下方有兩個(gè)標(biāo)簽頁(yè),第一頁(yè)叫“GraphicalLayout”,此頁(yè)為“設(shè)計(jì)視圖”,另一個(gè)叫“activity_main.xml”,此頁(yè)為UI所對(duì)應(yīng)的“代碼視圖頁(yè)”,現(xiàn)在點(diǎn)擊“activity_main.xml”標(biāo)簽頁(yè)就可以看到如圖3-3的界面。3.1Android用戶(hù)界面的組件和容器

Android體系中UI的設(shè)計(jì)采用視圖樹(shù)(ViewHierarchy)的結(jié)構(gòu),而視圖樹(shù)則由View和ViewGroup組成,如圖3-1所示。3.2文本控件的功能與使用方法

常見(jiàn)的文本控件有兩種:第一種是TextView:用于顯示文字或字符的控件第二種是EditText:用于用戶(hù)的輸入和編輯文字或字符的控件。3.2文本控件的功能與使用方法3.2.1、TextView的XML使用下面就一步步的來(lái)創(chuàng)建一個(gè)Android應(yīng)用程序,并為其添加一個(gè)TextView和EditText。第一步:創(chuàng)建項(xiàng)目。在AndroidStudio的菜單欄中選擇“File”→“New”→“NewProject”命令,打開(kāi)“NewProject”界面,并在“ApplicationName”輸入“3_01_TextControls”作為應(yīng)用程序的名稱(chēng),在“CompanyDomain”輸入“”,最后在“PackageName”中輸入“.siso.textcontrolsdemo”作為應(yīng)用程序的包名。3.2文本控件的功能與使用方法1、TextView的XML使用第二步:設(shè)置應(yīng)用程序名稱(chēng)。在完成第一步后單擊“Next”按鈕,出現(xiàn)“TargetAndroidDevices”界面,勾選“PhoneandTablet”。第三步:MinimumSDK,選擇API15:Android4.0.3(IceCreamSandwich),不要勾選其他選項(xiàng)(TV,Wear,andAuto),點(diǎn)擊Next。3.2文本控件的功能與使用方法1、TextView的XML使用第四步:并在“CustomizetheActivity”界面中修改ActivityName為MyActivity,修改LayoutName為activity_my,Title修改為MyActivity,MenuResourceName修改為menu_my,當(dāng)然也可以全部取默認(rèn)值,但項(xiàng)目開(kāi)發(fā)中為了區(qū)分,建議相關(guān)名稱(chēng)個(gè)性化。最后點(diǎn)擊Finish完成創(chuàng)建。3.2文本控件的功能與使用方法3.2.2、TextView的Java使用XML中的一切都定義完成后,有時(shí)需要在Java中動(dòng)態(tài)地對(duì)某些控件進(jìn)行修改,此時(shí)R.java文件就起到了連接X(jué)ML中組件與Java代碼中對(duì)象的作用,要在R文件中能夠找到XML組件,那么首先就必須為XML中的組件分配一個(gè)ID,分配完ID后,系統(tǒng)會(huì)自動(dòng)為每個(gè)控件分配一個(gè)ID號(hào)。3.2文本控件的功能與使用方法下面來(lái)修改activity_my.xml文件,即在TextView中添加屬性android:id,1

<TextView2

android:id="@+id/text"3

android:layout_width="wrap_content"4

android:layout_height="wrap_content"5

android:textColor="#ffff000"/>

第2行代碼的android:id是設(shè)置或者引用一個(gè)資源ID號(hào),該屬性的值是@+id/text,表示為T(mén)extView分配一個(gè)ID,ID的值為text。3.2文本控件的功能與使用方法XML中的元素標(biāo)簽都是成對(duì)出現(xiàn),即有開(kāi)始標(biāo)簽也有結(jié)束標(biāo)簽。構(gòu)成標(biāo)簽的方式有兩種:

第一種方式為“<標(biāo)簽>…</標(biāo)簽>”,這類(lèi)標(biāo)簽表示該標(biāo)簽內(nèi)還可以再嵌套其他標(biāo)簽,

如<LinearLayout>…</LinearLayout>標(biāo)簽,在此標(biāo)簽中還嵌套了TextView;

第二種方式為“<標(biāo)簽…/>”,此類(lèi)標(biāo)簽表示該標(biāo)簽中不可以再嵌套其他標(biāo)簽。3.2文本控件的功能與使用方法3、EditText的XML使用TextView了解后,學(xué)習(xí)EditText就相對(duì)比較簡(jiǎn)單,EditText只是在TextView的基礎(chǔ)上進(jìn)行擴(kuò)展和增強(qiáng)。還是以項(xiàng)目為例,切換到activity_my.xml的代碼視圖,并在此基礎(chǔ)上添加EditText,3.2文本控件的功能與使用方法3、EditText的XML使用1 <TextView2 android:id="@+id/text"3 android:textColor="#ffff00"/>4 5 <EditText6 android:id="@+id/edit"7 android:layout_width="match_parent"8 android:layout_height="wrap_content"9 android:hint="未輸入時(shí)的提示字符"10 android:inputType="number"/>3.2文本控件的功能與使用方法第5行代碼表示在UI中添加一個(gè)EditText控件第6行代碼表示為EditText添加一個(gè)ID,為以后被Java調(diào)用做準(zhǔn)備。第7~8行代碼表示設(shè)置EditText的寬度和高度第9行代碼用于設(shè)置EditText在用戶(hù)沒(méi)有輸入文字時(shí)顯示的提示信息。第10行代碼用于設(shè)置鍵盤(pán)的類(lèi)型,本例中把它設(shè)為數(shù)字類(lèi)型的鍵盤(pán)。3.2文本控件的功能與使用方法3、EditText的XML使用以上便是對(duì)如何在UI中添加一個(gè)EditText的方法。從本例中讀者不難發(fā)現(xiàn)EditText控件的添加和TextView控件的添加極為類(lèi)似,EditText只是有少數(shù)一些屬性上進(jìn)行添加以此增加其功能,但這里依然有幾點(diǎn)需要向讀者說(shuō)明:3.2文本控件的功能與使用方法3、EditText的XML使用1)在設(shè)置android:layout_width或android:layout_height時(shí)Android提供個(gè)三個(gè)屬性值供開(kāi)發(fā)者選擇“fill_parent”、“match_parent”和“wrap_content”,其中“fill_parent”屬性和“match_parent”屬性在效果是一致的,但是Google建議使用“match_parent”,因此通常都使用“match_parent”和“wrap_content”來(lái)設(shè)置控件的寬和高。2)inputtype的類(lèi)型除了數(shù)字類(lèi)型的鍵盤(pán)外還有許多種,

如文本鍵盤(pán)(text),郵件地址鍵盤(pán)(textEmailAddress)和電話(huà)鍵盤(pán)(phone)等,如圖3.2文本控件的功能與使用方法3、EditText的XML使用2)inputtype的類(lèi)型除了數(shù)字類(lèi)型的鍵盤(pán)外還有許多種,

如文本鍵盤(pán)(text),郵件地址鍵盤(pán)(textEmailAddress)和電話(huà)鍵盤(pán)(phone)等,如圖3.2文本控件的功能與使用方法3.2.4、EditText的Java使用如果需要在Java代碼中使用控件時(shí)就必須為該控件定義一個(gè)ID號(hào),因此在上節(jié)中為EditText聲明了一個(gè)“edit”的ID,其后在編譯完成后就會(huì)在R.java中產(chǎn)生一個(gè)對(duì)應(yīng)的序列號(hào)。此后就可以通過(guò)findViewById()得到所需的控件。因?yàn)镋ditText和TextView在本質(zhì)上存在一定的相似性,所以對(duì)EditText的常用操作也是通過(guò)與TextView一樣的setText()和getText()來(lái)設(shè)置和得到EditText中的文字3.2文本控件的功能與使用方法4、EditText的Java使用代碼修改完成后,在AndroidSutdio窗口上邊的“Run”中選中“Run‘a(chǎn)pp’”,并單擊鼠標(biāo)左鍵來(lái)運(yùn)行項(xiàng)目,得到的最終結(jié)果如圖3-7所示。3.3按鈕控件的功能與使用方法

常見(jiàn)的按鈕控件有五種第一種是按鈕(Button)第二種是圖片按鈕(ImageButton)第三種是多選按鈕(CheckBox)第四種是單選按鈕(RadioButton)第五種是狀態(tài)開(kāi)關(guān)按鈕(ToggleButton)3.3按鈕控件的功能與使用方法

1、Button與ImageButton的XML使用Android的體系結(jié)構(gòu)中Button繼承于TextView,而ImageButton繼承于ImageView,雖然這兩個(gè)控件繼承于不同的控件,但是Button和ImageButton都是用于完成用戶(hù)的點(diǎn)擊按鈕時(shí)的onClick事件。在AndroidStudio中創(chuàng)建Android項(xiàng)目,切換布局文件/res/layout/activity_main.xml到代碼視圖,并修改代碼如下:3.3按鈕控件的功能與使用方法1、Button與ImageButton的XML使用1 <LinearLayout2 android:orientation="vertical">3 <Button4 android:id="@+id/button"5 android:layout_width="wrap_content"6 android:layout_height="wrap_content"7 android:text="普通按鈕"/>3.3按鈕控件的功能與使用方法1、Button與ImageButton的XML使用8 <ImageButton9 android:id="@+id/imagebutton"10 android:layout_width="wrap_content"11 android:layout_height="wrap_content"12 android:src="@drawable/button_icon"13 android:background="#000000"/>14 </LinearLayout>3.3按鈕控件的功能與使用方法

第3行和第8行代碼表示在UI界面中添加一個(gè)Button和ImageButton。

第7行代碼中的“android:text”是Button控件中非常常用的屬性,用于為Button添加按鈕文字為“普通按鈕”。

第12行代碼的“android:src”是ImageButton控件中非常常用的屬性,用于設(shè)定ImageButton的圖片。

第13行代碼的“android:background”用來(lái)設(shè)置ImageButton的背景顏色為黑色,并且為完全透明。

3.3按鈕控件的功能與使用方法設(shè)置背景可以使用控件的background屬性,background屬性值的格式通常有4種,分別為“#rgb”、“#argb”、“#rrggbb”和“#aarrggbb”,其中“a”就表示透明度,取值范圍也是從0~255,0表示完全透明,255表示不透明。所以在本例中把ImageButton的background屬性值設(shè)為#000000就可以使背景完全透明3.3按鈕控件的功能與使用方法2、Button與ImageButton的Java使用Button和ImageButton除了在XML中創(chuàng)建方法非常相似外,在Java代碼中的使用也是非常相似,其用戶(hù)點(diǎn)擊的響應(yīng)函數(shù)都為onClick()。3.3按鈕控件的功能與使用方法2、Button與ImageButton的Java使用切換到“src”目錄下java文件,在onCreate()函數(shù)中完成Button、ImageButton和EditText這3個(gè)控件的關(guān)聯(lián),具體代碼如下:1 publicclassMainActivityextendsActivity{2 privateButtonnormalButton;3 privateImageButtonimageButton;4 privateEditTexteditText;5 publicvoidonCreate(BundlesavedInstanceState){3.3按鈕控件的功能與使用方法2、Button與ImageButton的Java使用6 super.onCreate(savedInstanceState);7 setContentView(R.layout.activity_main);8 normalButton=(Button)findViewById(R.id.button);9 imageButton=(ImageButton)findViewById(R.id.imagebutton);10editText=(EditText)findViewById(R.id.edit);11 }12 }3.3按鈕控件的功能與使用方法2、Button與ImageButton的Java使用當(dāng)關(guān)聯(lián)的代碼都完成后,接下來(lái)就要在第10行代碼之后實(shí)現(xiàn)Button和ImageButton的單擊事件,1 normalButton.setOnClickListener(newOnClickListener(){2 publicvoidonClick(Viewv)3 editText.setText("普通按鈕的響應(yīng)事件");4 }});5 imageButton.setOnClickListener(newOnClickListener(){ 6publicvoidonClick(Viewv){7 editText.setText("圖片按鈕的響應(yīng)事件");8 }});3.3按鈕控件的功能與使用方法第1行代碼用于為Button設(shè)置一個(gè)OnClickListener的監(jiān)聽(tīng)注冊(cè)函數(shù)。只有當(dāng)Button設(shè)置了監(jiān)聽(tīng)注冊(cè)函數(shù),其才能響應(yīng)用戶(hù)的單擊事件。而隨后的onClickListener()函數(shù)就是為注冊(cè)函數(shù)注冊(cè)一個(gè)監(jiān)聽(tīng)器,在這個(gè)監(jiān)聽(tīng)器中用于事件用戶(hù)點(diǎn)擊時(shí)的處理過(guò)程。第2~4行代碼是Button的用戶(hù)單擊事件的處理函數(shù),在本例中當(dāng)用戶(hù)單擊Button時(shí)在EditText中顯示“普通按鈕的響應(yīng)事件”。3.3按鈕控件的功能與使用方法3.3.3、CheckBox的XML使用CheckBox即多選按鈕,允許用戶(hù)在一組選項(xiàng)中進(jìn)行單選和多選。CheckBox在UI中的創(chuàng)建方案依然類(lèi)似前面控件的創(chuàng)建方法,3.3按鈕控件的功能與使用方法3.3.3CheckBox的XML使用1 <LinearLayout2 android:orientation="vertical">3 <CheckBox4 android:id="@+id/meat"5 android:layout_width="match_parent"6 android:layout_height="wrap_content"7 android:text="肉類(lèi)"8 android:onClick="onCheckboxClicked"3.3按鈕控件的功能與使用方法3.3.3、CheckBox的XML使用9 android:checked="true"/>10 <CheckBox11 android:id="@+id/cheese"12 android:layout_width="match_parent"13 android:layout_height="wrap_content"14 android:text="芝士"15 android:onClick="onCheckboxClicked"/>16 </LinearLayout>3.3按鈕控件的功能與使用方法3.3.3CheckBox的XML使用第3~7行代碼表示在UI中添加一個(gè)CheckBox,并設(shè)置該CheckBox的ID和大小,最后設(shè)置CheckBox中的文字。第8行代碼是設(shè)置單擊該CheckBox的響應(yīng)事件,這是除了在Java中定義用戶(hù)單擊事件外的另一種設(shè)置用戶(hù)單擊事件的方法,具體使用方法在隨后的章節(jié)中詳細(xì)說(shuō)明。第9行代碼是設(shè)置CheckBox為默認(rèn)選中。3.3按鈕控件的功能與使用方法3.3.4、CheckBox的Java使用之前例子中,使用的響應(yīng)事件都是由系統(tǒng)提供的,具有特定函數(shù)名的響應(yīng)函數(shù),實(shí)際上,Android也提供了自定義響應(yīng)函數(shù)名的方法來(lái)響應(yīng)用戶(hù)事件。使用系統(tǒng)響應(yīng)函數(shù)目前都是放在onCreate中進(jìn)行定義和實(shí)現(xiàn),而使用自定義的響應(yīng)函數(shù)則需要把響應(yīng)函數(shù)放在Activity中作為一個(gè)成員函數(shù)來(lái)使用,同時(shí)這個(gè)Activity必須包含這個(gè)控件,3.3按鈕控件的功能與使用方法4、CheckBox的Java使用public

void

onCheckboxClicked(Viewview){2 booleanchecked=((CheckBox)view).isChecked();34 switch(view.getId()){5 caseR.id.meat:6 if(checked){7 editText.setText("肉類(lèi)");8 }else{9 editText.setText("");10 }11 break;3.3按鈕控件的功能與使用方法4、CheckBox的Java使用12 caseR.id.cheese:13 if(checked){14 editText.setText("芝士");15 }else{16 editText.setText("");17 }18 break;19 }20 }3.3按鈕控件的功能與使用方法3.3.4、CheckBox的Java使用第1行用于添加CheckBox的自定義響應(yīng)函數(shù),其中view表示當(dāng)前點(diǎn)擊的控件。第2行中首先把View強(qiáng)制轉(zhuǎn)換為CheckBox,然后保存CheckBox的狀態(tài)至checked。第4行中通過(guò)view.getId()函數(shù)就可以得到用戶(hù)所點(diǎn)擊控件的ID號(hào)。第6~9行用于實(shí)現(xiàn)點(diǎn)擊CheckBox在EditText中顯示文字的功能。通過(guò)checked變量就可以在EditText中設(shè)置對(duì)應(yīng)的文字。3.3按鈕控件的功能與使用方法3.3.5、RadioButton的XML使用RadioButton的功能正好與CheckBox相反,用于在一組選項(xiàng)進(jìn)行單項(xiàng)選擇,因此RadioButton經(jīng)常與表示一組選項(xiàng)的RadioGroup一起使用,即當(dāng)用戶(hù)在已經(jīng)設(shè)定的一組RadioButton中選擇時(shí)只能選擇其中的一項(xiàng)。3.3按鈕控件的功能與使用方法3.3.5、RadioButton的XML使用1 <RadioGroup2 android:id="@+id/radiogroup"3 android:layout_width="wrap_content"4 android:layout_height="wrap_content"5 android:orientation="horizontal">6 <RadioButton7 android:id="@+id/radiobutton1"8 android:layout_width="wrap_content"9 android:layout_height="wrap_content"10 android:checked="true"11 android:text=“Male”/>3.3按鈕控件的功能與使用方法第1行代碼表示在UI界面中定義一個(gè)RadioGroup容器用于包含一組RadioButton組件。第2行代碼用于設(shè)定RadioGroup的ID號(hào),使該組件可以在Java代碼中被使用。第5行代碼設(shè)置在RadioGroup中RadioButton的排列方式為橫向排列。第6~10行代碼表示在RadioGroup中定義的RadioButton組件,并設(shè)定其高度、寬度以及顯示的文字。3.3按鈕控件的功能與使用方法3.3.6、RadioButton的Java使用在使用RadioButton時(shí)常用的方法有三種:一、在XML中為每個(gè)RadioButton設(shè)置一個(gè)onClick的函數(shù),然后在Activity的成員函數(shù)中實(shí)現(xiàn)二、為每個(gè)RadioButton綁定一個(gè)onClickListener的監(jiān)聽(tīng)器,然后通過(guò)監(jiān)聽(tīng)器來(lái)響應(yīng)用戶(hù)的點(diǎn)擊事件3.3按鈕控件的功能與使用方法6、RadioButton的Java使用三、由于一組RadioButton屬于一個(gè)RadioGroup,因此可以通過(guò)RadioGroup中的監(jiān)聽(tīng)事件來(lái)判斷RadioButton是否有被點(diǎn)擊,從而處理用戶(hù)的選擇事件。本節(jié)主要講述如何實(shí)現(xiàn)第三種用戶(hù)響應(yīng)事件的方法。3.3按鈕控件的功能與使用方法3.3.6、RadioButton的Java使用在AndroidStudio中打開(kāi)項(xiàng)目中的“src”目錄中的MainActivity.java,并在其中onCreate函數(shù)中添加如下代碼。

RadioGroupradioGroup=(RadioGroup)findViewById(R.id.radiogroup);radioGroup.setOnCheckedChangeListener(newOnCheckedChangeListener(){3.3按鈕控件的功能與使用方法3.3.6、RadioButton的Java使用

@Overridepublic

void

onCheckedChanged(RadioGroupgroup,intcheckedId){ //TODOAuto-generatedmethodstub

switch(checkedId){

caseR.id.maleradio: editText.setText("男");

break;3.3按鈕控件的功能與使用方法6、RadioButton的Java使用

caseR.id.femaleradio: editText.setText("女");

break;

default:

break; }}});3.3按鈕控件的功能與使用方法6、RadioButton的Java使用第1行代碼表示通過(guò)findViewById得到XML中定義的RadioGroup控件。第2行用于向RadioGroup注冊(cè)一個(gè)監(jiān)聽(tīng)器,并在這個(gè)監(jiān)聽(tīng)器中完成用戶(hù)選擇響應(yīng)函數(shù)的代碼。第3行是一個(gè)用戶(hù)選擇變更的響應(yīng)函數(shù),onCheckedChanged函數(shù)有兩個(gè)參數(shù)第一個(gè)參數(shù)group:當(dāng)前選擇的是哪個(gè)RadioGroup,第二個(gè)參數(shù)checkedId:用戶(hù)在當(dāng)前這個(gè)RadioGroup中選擇的RadioButton的ID。第4~12行代碼通過(guò)一個(gè)switch語(yǔ)句來(lái)判斷用戶(hù)選擇是哪一個(gè)RadioButton,然后通過(guò)所選擇的RadioButton來(lái)修改EditText中的文字。3.4時(shí)間和日期控件的功能與使用方法

Android系統(tǒng)中時(shí)間和日期的控件總共有兩大類(lèi):AnalogClock和DigitalClock控件;DatePicker和TimePicker;本節(jié)主要向讀者展示這四個(gè)控件的基本使用方法。3.4時(shí)間和日期控件的功能與使用方法3.4.1

AnalogClock與DigitalClock的XML使用AnalogClock和DigitalClock的使用非常簡(jiǎn)單,由于這兩個(gè)控件的時(shí)間值都是由系統(tǒng)決定的,因此在使用時(shí)只需要在布局文件的XML中創(chuàng)建即可,無(wú)需任何的Java代碼的添加。打開(kāi)“l(fā)ayout”目錄下的activity_main文件,并添加如下代碼:3.4時(shí)間和日期控件的功能與使用方法3.4.1

AnalogClock與DigitalClock的XML使用1<AnalogClock2android:layout_width="wrap_content"3 android:layout_height="wrap_content"/>4 <DigitalClock5 android:layout_width="wrap_content"6 android:layout_height="wrap_content"7 android:textSize="14pt"/>3.4時(shí)間和日期控件的功能與使用方法1、AnalogClock與DigitalClock的XML使用第1~6行代碼分別定義了一個(gè)模擬時(shí)鐘和數(shù)字使用,并設(shè)置各個(gè)控件的寬和高。第7行代碼定義了數(shù)字時(shí)鐘的文字大小,除此之外還可以通過(guò)定義textColor屬性來(lái)設(shè)置文字顏色。以上便是AnalogClock和DigitalClock的使用3.4時(shí)間和日期控件的功能與使用方法3.4.2

DatePicker與TimerPicker的XML使用DatePicker和TimerPicker是Android系統(tǒng)中用于設(shè)定時(shí)間和日期的控件,其中DatePicker控件在Android4.0中會(huì)自動(dòng)產(chǎn)生一個(gè)日歷功能,因此如果只需要顯示日期選擇時(shí)就要在布局文件中對(duì)DatePicker控件進(jìn)行特別的設(shè)定3.4時(shí)間和日期控件的功能與使用方法3.4.2DatePicker與TimerPicker的XML使用在布局文件中對(duì)DatePicker控件進(jìn)行特別的設(shè)定,效果如圖修改activity_main.xml文件,并添加如下代碼:3.4時(shí)間和日期控件的功能與使用方法2、DatePicker與TimerPicker的XML使用1 <DatePicker2 android:id="@+id/datePicker"3 android:layout_width="wrap_content"4 android:layout_height="wrap_content"5 android:calendarViewShown="false"/>6 <TimePicker7 android:id="@+id/timePicker"8 android:layout_width="wrap_content"9 android:layout_height="wrap_content"/>3.4時(shí)間和日期控件的功能與使用方法2、DatePicker與TimerPicker的XML使用<EditText11 android:id="@+id/userInfo"12 android:layout_width="match_parent"13 android:layout_height="wrap_content"14 android:textSize="12sp"/>3.4時(shí)間和日期控件的功能與使用方法2、DatePicker與TimerPicker的XML使用第1~5行代碼用于在UI中定義DatePicker控件。其中第5行代碼中calendarViewShown屬性用于設(shè)置Calendar是否顯示,在本例中該屬性值為false,因此當(dāng)DatePicker控件顯示時(shí),只顯示日期信息,而不顯示日歷。第6~9行代碼表示在UI中定義一個(gè)TimePicker控件,并設(shè)定其高度和寬度,以及把TimePicker設(shè)為水平居中。第10~14行代碼表示在UI中添加一個(gè)ID為“userInfo”的EditText控件,同時(shí)設(shè)定其字體大小為12sp。3.4時(shí)間和日期控件的功能與使用方法3.4.3、DatePicker與TimerPicker的Java使用在Java代碼中使用DatePicker控件時(shí)主要掌握init()函數(shù)的使用,在該函數(shù)中會(huì)有日期改變時(shí)的事件響應(yīng)函數(shù)和年、月、日參數(shù)的設(shè)定。而TimerPicker控件使用時(shí)則需要重點(diǎn)掌握時(shí)間改變時(shí)的處理事件onTimeChanged()。打開(kāi)“src”目錄下的MainActivity.java文件,并在其中添加代碼如下:3.4時(shí)間和日期控件的功能與使用方法3.4.3、DatePicker與TimerPicker的Java使用public

classMainActivityextendsActivity{

privateDatePickerdatePicker;

...

private

intyear,month,day,hour,minute;

@Override

protected

void

onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ...3.4時(shí)間和日期控件的功能與使用方法3.4.3DatePicker與TimerPicker的Java使用Calendarcalendar=Calendar.getInstance(); year=calendar.get(Calendar.YEAR); month=calendar.get(Calendar.MONTH); ... datePicker.init(year,month,day,newOnDateChangedListener(){3.4時(shí)間和日期控件的功能與使用方法3.4.3DatePicker與TimerPicker的Java使用

@Override public

void

onDateChanged(DatePickerview,intyear,intmonthOfYear,intdayOfMonth){ //TODOAuto-generatedmethodstub MainActivity.this.year=year; ... showDate(year,month,day,hour,minute); } });3.4時(shí)間和日期控件的功能與使用方法3.4.3、DatePicker與TimerPicker的Java使用timePicker.setOnTimeChangedListener(newOnTimeChangedListener(){ @Override

public

void

onTimeChanged(TimePickerview,inthourOfDay,intminute){ //TODOAuto-generatedmethodstub MainActivity.this.hour=hourOfDay; MainActivity.this.minute=minute; showDate(year,month,day,hour,minute); } }); }}3.4時(shí)間和日期控件的功能與使用方法3.4.3DatePicker與TimerPicker的Java使用第3行用于記錄當(dāng)前時(shí)間的年、月、日、小時(shí)、分鐘。第8行代碼用于得到一個(gè)Calendar對(duì)象,這里需要注意的是,Calendar對(duì)象不是通過(guò)new關(guān)鍵字得到的,而是通過(guò)Calendar的靜態(tài)成員函數(shù)getInstance()得到的。第12~19行代碼調(diào)用init()函數(shù)來(lái)初始化DatePicker對(duì)象,同時(shí)為DatePicker對(duì)象創(chuàng)建日期的響應(yīng)函數(shù)onDateChanged()。第20~28行代碼用于為T(mén)imePicker對(duì)象設(shè)置一個(gè)時(shí)間變動(dòng)的監(jiān)聽(tīng)函數(shù),時(shí)間發(fā)生變化就會(huì)觸發(fā)該函數(shù)。以上就是TimePicker和DatePicker控件在XML以及Java中的使用,3.5界面布局管理器的使用

3.5.1布局文件的使用創(chuàng)建布局文件類(lèi)似于Web頁(yè)面中的HTML元素,具有一定層次性。每一個(gè)布局文件都必須要包含一個(gè)根元素,這個(gè)根元素可以是一個(gè)View,也可以是ViewGroup。當(dāng)定義了根元素后,就可以添加任意的布局對(duì)象或者UI組件作為子元素,從而構(gòu)建出一個(gè)具有層次性的布局。3.5界面布局管理器的使用

3.5.1布局文件的使用例如下面這是一個(gè)XML文件中利用縱向布局來(lái)排列一個(gè)TextView和Button:1<LinearLayout2 android:orientation="vertical">3 <TextView4 android:text="Hello,IamaTextView"/>5 <Button6 android:text="Hello,IamaButton"/>7 </LinearLayout>3.5界面布局管理器的使用

3.5.1布局文件的使用當(dāng)XML文件創(chuàng)建完成后,就可以在Java中進(jìn)行載入,每一個(gè)XML布局文件都被編譯到資源文件中,然后在Activity.onCreate()函數(shù)中通過(guò)setContentView()實(shí)現(xiàn)布局文件的加載,載入的參數(shù)形式為R.layout.layout_file_name。3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局線(xiàn)性布局是AndroidUI中使用最為頻繁的一種,使用類(lèi)LinearLayout進(jìn)行管理。LinearLayout屬于ViewGroup,因此在LinearLayout中可以包含任意多個(gè)子視圖,而這些視圖在LinearLayout管理下所有的子元素都是按照垂直或者水平方向進(jìn)行一個(gè)挨著一個(gè)緊密排列。3.5界面布局管理器的使用

3.5.2線(xiàn)性布局接下來(lái)就請(qǐng)讀者在AndroidStudio中創(chuàng)建項(xiàng)目“3_04_LayoutControls”,并打開(kāi)“res”目錄下的activity_main.xml文件,并在其中修改代碼如下:1 <LinearLayoutxmlns:android=""2 xmlns:tools=""3 android:layout_width="match_parent"4 android:layout_height="match_parent"5 android:orientation="vertical">3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局7 <!--線(xiàn)性布局1_垂直布局-->8 <LinearLayout9 android:layout_width="match_parent"10 android:layout_height="wrap_content"11 android:orientation="vertical12 <Button13 android:layout_width="wrap_content"14 android:layout_height="wrap_content"15 android:text="垂直1"/>3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局<Button17 android:layout_width="wrap_content"18 android:layout_height="wrap_content"19 android:text="垂直2"/>20 <Button21 android:layout_width="wrap_content"22 android:layout_height="wrap_content"23 android:text="垂直3"/>24 </LinearLayout>25 <!--線(xiàn)性布局2_水平布局-->26 <LinearLayout27 android:layout_width="match_parent"28 android:layout_height="wrap_content"29 android:orientation="horizontal">

3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局30 <Button31 android:layout_width="wrap_content"32 android:layout_height="wrap_content"33 android:text="水平1"/>34 <Button35 android:layout_width="wrap_content"36 android:layout_height="wrap_content"37 android:text="水平2"/>38 <Button39 android:layout_width="wrap_content"40 android:layout_height="wrap_content"41 android:text="水平3"/>42 </LinearLayout>43 </LinearLayout>3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局第5行代碼表示該界面的總體布局為垂直布局。第11行和第29行代碼表示兩模塊分別采用線(xiàn)性布局中的垂直布局和水平布局。從以上代碼可以看出LinearLayout除了自身表示線(xiàn)性布局外,還可以在其中再嵌套線(xiàn)性布局,這就是前面所說(shuō)的“容器”的作用,其實(shí)除了可以嵌套線(xiàn)性布局,在后面的內(nèi)容中讀者會(huì)發(fā)現(xiàn)可以嵌套任意布局。3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局線(xiàn)性布局中最為常用的三個(gè)屬性:Orientation:

表示線(xiàn)性布局的方向,即水平方向還是垂直方向Weight:

表示每個(gè)組件所占用空間的比例,如果有3個(gè)weight均為1的組件,那么這些組件所占空間分別為1/3、1/3、1/3,即把空間進(jìn)行三等分Gravity:

表示布局管理器內(nèi)部組件的對(duì)齊方式,當(dāng)使用多種對(duì)齊時(shí),則使用“|”作為間隔3.5界面布局管理器的使用

3.5.2線(xiàn)性布局<LinearLayoutxmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">

<!--線(xiàn)性布局3_gravity--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:gravity="right">......</LinearLayout>3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局

<!--線(xiàn)性布局1_weight--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"

android:layout_weight="1"android:text="水平1"/>3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局<Button

android:layout_width="0dp"android:layout_height="wrap_content"

android:layout_weight="1"android:text="水平2"/><Button

android:layout_width="0dp"android:layout_height="wrap_content"

android:layout_weight="1"android:text="水平3"/></LinearLayout></LinearLayout>3.5界面布局管理器的使用

3.5.2

線(xiàn)性布局第11行代碼設(shè)定LinearLayout布局的內(nèi)部組件的對(duì)齊方式為右對(duì)齊。第20、25、30行代碼設(shè)定組件的寬度為0,這是三等分組件的前提條件。第22、27、32行代碼設(shè)定各組件的權(quán)重為1,即每個(gè)組件都占用1/3,從而完成了三等分。3.5界面布局管理器的使用3.5.2

線(xiàn)性布局

線(xiàn)性布局中的weight和gravity的使用

垂直和水平布局3.5界面布局管理器的使用

3.5.3表格布局表格布局使用TableLayout進(jìn)行管理,在繪制表格時(shí)不需要聲明表格的列數(shù)和行數(shù),而是通過(guò)TableRow來(lái)添加表格的行.通過(guò)TableRow中定義的組件個(gè)數(shù)來(lái)自動(dòng)計(jì)算表格列數(shù)。因此在繪制表格時(shí)如果有3行,則需要添加3個(gè)TableRow。3.5界面布局管理器的使用

3.5.3表格布局在項(xiàng)目中添加一個(gè)新的布局文件activity_table.xml,并添加代碼如下:1

<TableLayout2 android:layout_width="match_parent"3 android:layout_height="wrap_content">4 <!--添加第一行-->5 <TableRow>6 <TextView7 android:layout_width="wrap_content"8 android:layout_height="wrap_content"9 android:text="用戶(hù)名:"/>

3.5界面布局管理器的使用

3.5.3表格布局10 <EditText11 android:layout_width="match_parent"12 android:layout_height="wrap_content"13 android:hint="請(qǐng)輸入用戶(hù)名"/>14 </TableRow>15 <!--添加第二行-->16 <TableRow>17 <TextView18 android:layout_width="wrap_content"19 android:layout_height="wrap_content"20 android:text="密碼:"/>3.5界面布局管理器的使用

3.5.3表格布局21 <EditText22 android:layout_width="match_parent"23 android:layout_height="wrap_content"24 android:hint="請(qǐng)輸入密碼"/>25 </TableRow>26 </TableLayout>第1行代碼用于在一個(gè)線(xiàn)性布局中添加一個(gè)TableLayout的表格布局。3.5界面布局管理器的使用

3.5.5表格布局第5行和第6行代碼用于為表格添加兩行,并在兩行中分別添加兩列,放置TextView和EditText。運(yùn)行的效果如圖所示3.5界面布局管理器的使用

3.5.3表格布局由于在表格布局中默認(rèn)情況下根據(jù)內(nèi)容來(lái)控制單元格的寬度,在右邊留有了一片空白區(qū)域。除了常規(guī)的屬性外,還有3個(gè)屬性最為常用,見(jiàn)表:表3-1TableLayout屬性及說(shuō)明3.5界面布局管理器的使用

3.5.4相對(duì)布局相對(duì)布局(RelativeLayout):

是在繼線(xiàn)性布局和表格布局之后另一個(gè)常用的布局方法。相對(duì)布局的特點(diǎn):

是能夠通過(guò)組件和組件之間的關(guān)系來(lái)確定組件的位置,即如果組件A的位置在組件B的左邊,那么在使用相對(duì)布局時(shí)就需要先定義組件B,然后才能定義組件A。3.5界面布局管理器的使用

3.5.4相對(duì)布局子組件與父組件的位置關(guān)系XML屬性名說(shuō)明android:layout_centerHotizontal控制組件是否位于水平居中android:layout_centerVertical控制組件是否位于垂直居中android:layout_centerInParent控制組件是否位于中央android:layout_alignParentButton控制組件是否位于底部android:layout_alignParentLeft控制組件是否位于左邊android:layout_alignParentRight控制組件是否位于右邊android:layout_alignParentTop控制組件是否位于上部3.5界面布局管理器的使用

3.5.4相對(duì)布局組件與組件的位置關(guān)系XML屬性名說(shuō)明android:layout_toRightOf控制指定組件位于指定ID的右邊android:layout_toLeftOf控制指定組件位于指定ID的左邊android:layout_above控制指定組件位于指定ID的上方android:layout_below控制指定組件位于指定ID的下方android:layout_alignTop控制指定組件位于指定ID的上邊界對(duì)齊android:layout_alignBottom控制指定組件位于指定ID的下邊界對(duì)齊android:layout_alignLeft控制指定組件位于指定ID的左邊界對(duì)齊android:layout_alignRight控制指定組件位于指定ID的右邊界對(duì)齊3.5界面布局管理器的使用

3.5.4、相對(duì)布局從上表可以看出這些特有的屬性分為兩大類(lèi)

第一種是子組件和父組件之間的關(guān)系,

它們值只有兩個(gè)true和false;

第二種是組件和組件之間的關(guān)系,

它們的值是另一個(gè)組件ID的應(yīng)用;因此在使用時(shí)必須先要為每個(gè)組件定義一個(gè)ID。3.5界面布局管理器的使用

3.5.4相對(duì)布局利用相對(duì)布局繪制一個(gè)登錄界面來(lái)闡釋使用這些屬性的方法:1 <!--嵌套一個(gè)相對(duì)布局-->2 <RelativeLayout3 android:layout_width="match_parent"4 android:layout_height=“wrap_content”>3.5界面布局管理器的使用

3.5.4相對(duì)布局5 <TextView6 android:id="@+id/userName"7 android:layout_width="wrap_content"8 android:layout_height="wrap_content"9 android:text="用戶(hù)名:"/>10 <!--layout_below定義了EditText相對(duì)于TextView在其下方-->11 <EditText12 android:id="@+id/userEdit"13 android:layout_width="match_parent"14 android:layout_height="wrap_content"15 android:layout_below="@id/userName"16 android:hint="請(qǐng)輸入用戶(hù)名"/>3.5界面布局管理器的使用

3.5.4相對(duì)布局17<TextView18 android:id="@+id/passwd"19 android:layout_width="wrap_content"20 android:layout_height="wrap_content"21 android:layout_below="@id/userEdit"22 android:text="密碼:"/>23 <EditText24 android:id="@+id/passwdEdit"25 android:layout_width="match_parent"26 android:layout_height="wrap_content"27 android:layout_below="@id/passwd"28 android:hint="請(qǐng)輸入密碼"/>3.5界面布局管理器的使用

3.5.4相對(duì)布局29 <!--layout_alignParentRight定義了Button在其父組件的右邊-->30 <Button31 android:id="@+id/cancel"32 android:layout_width="wrap_content"33 android:layout_height="wrap_content"34 android:layout_below="@id/passwdEdit"35 android:layout_alignParentRight="true"36 android:text="取消"/>37 <!--layout_toLeftOf定義了Button在其cancel組件的左邊-->38 <Button39 android:id="@+id/ok"40 android:layout_width="wrap_content"41 android:layout_height="wrap_content"42 android:layout_below="@id/passwdEdit"43 android:layout_toLeftOf="@id/cancel"44 android:text="登錄"/>45 </RelativeLayout>3.5界面布局管理器的使用

3.5.4相對(duì)布局第15行代碼用于將用戶(hù)名輸入框設(shè)置在用戶(hù)名標(biāo)簽的下方。第35行代碼用于將取消按鈕設(shè)置在相對(duì)于父頁(yè)面的右邊,即整個(gè)頁(yè)面的右邊,同時(shí)將其設(shè)置在密碼輸入框的下方。第43行代碼用于將登錄按鈕設(shè)置在取消按鈕的左邊3.5界面布局管理器的使用

3.5.4相對(duì)布局這里需要注意的是:

最后的登錄和取消按鈕的設(shè)置,因?yàn)榈卿洶粹o是在相對(duì)于取消按鈕的左邊,所以必須先定義取消按鈕,最終的效果如圖所示。3.6Intent的概念及使用概念

Android中提供了一種Intent機(jī)制來(lái)協(xié)助應(yīng)用程序間、組件之間的交互與通信,Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。Intent不僅可用于應(yīng)用程序之間,也可用于應(yīng)用程序內(nèi)部的組件(如Activity、Service)之間的交互。3.6Intent的概念及使用概念

Intent的中文意思就是意圖、目的。與此概念相吻合,Intent在Android中起著一個(gè)“媒體中介”的作用,指出希望跳轉(zhuǎn)到的目的組件的相關(guān)信息,并實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的信息數(shù)據(jù)傳遞。3.6Intent的概念及使用SDK給出了Intent作用的表現(xiàn)形式為:1)通過(guò)startActivity()或 startActivityForResult()啟動(dòng)一個(gè)Activity。2)通過(guò)startService()啟動(dòng)一個(gè)服務(wù)Service,

或者通過(guò)bindService()和后臺(tái)服務(wù)進(jìn)行交互。3)通過(guò)sendBroadcast()、 sendOrderedBroadcast()、sendStickyBroadcast()函數(shù)在Android系統(tǒng)中發(fā)布廣播消息。3.6Intent的概念及使用Intent的兩種基本用法:一種是顯式的Intent,即在構(gòu)造Intent對(duì)象時(shí)就指定接收者;另一種是隱式的Intent,即Intent的發(fā)送者在構(gòu)造Intent對(duì)象時(shí),并不知道接收者是誰(shuí),有利于降低發(fā)送者和接收者之間的耦合;3.6Intent的概念及使用當(dāng)一個(gè)意圖對(duì)象被一個(gè)意圖過(guò)濾器進(jìn)行匹配測(cè)試時(shí),只有三個(gè)方面會(huì)被參考到:動(dòng)作、數(shù)據(jù)(URI以及數(shù)據(jù)類(lèi)型)和類(lèi)別。3.6Intent的概念及使用(1)動(dòng)作(Action)

一個(gè)意圖對(duì)象只能指定一個(gè)動(dòng)作名稱(chēng),常見(jiàn)動(dòng)作見(jiàn)表3-4,而一個(gè)過(guò)濾器可能列舉多個(gè)動(dòng)作名稱(chēng)。如果意圖對(duì)象或過(guò)濾器沒(méi)有指定任何動(dòng)作:

一方面,如果過(guò)濾器沒(méi)有指定任何動(dòng)作,那么將阻塞所有意圖,因此所有意圖都會(huì)測(cè)試失敗。

另一方面,只要過(guò)濾器包含至少一個(gè)動(dòng)作,一個(gè)沒(méi)有指定動(dòng)作的意圖對(duì)象也能自動(dòng)通過(guò)這個(gè)測(cè)試。

3.6Intent的概念及使用3.6Intent的概念及使用3.6Intent的概念及使用(1)類(lèi)別(Category)

對(duì)于一個(gè)能夠通過(guò)類(lèi)別匹配測(cè)試的意圖,意圖對(duì)象中的類(lèi)別必須匹配過(guò)濾器中的類(lèi)別。

原則上一個(gè)沒(méi)有類(lèi)別的意圖對(duì)象應(yīng)該總能夠通過(guò)匹配測(cè)試,而不管過(guò)濾器里有什么。但有一個(gè)例外,Android把所有傳給startActivity()的隱式意圖當(dāng)作它們包含至少一個(gè)類(lèi)別ent.category.DEFAULT(CATEGORY_DEFAULT常量)。

3.6Intent的概念及使用(3)數(shù)據(jù)(Data)

當(dāng)一個(gè)意圖對(duì)象中的URI被用來(lái)和一個(gè)過(guò)濾器中的URI比較時(shí),比較的是URI的各個(gè)組成部分。

當(dāng)然,一個(gè)過(guò)濾器中的路徑規(guī)格可以包含通配符,這樣只需要部分匹配即可。

3.7Activity的啟動(dòng)和跳轉(zhuǎn)

在Android系統(tǒng)中,應(yīng)用程序一般都有多個(gè)ActivityIntent可以幫助實(shí)現(xiàn)不同Activity之間的切換和數(shù)據(jù)傳遞。Activity的跳轉(zhuǎn)啟動(dòng)的方式主要有兩種:顯式啟動(dòng)和隱式啟動(dòng)。3.7Activity的啟動(dòng)和跳轉(zhuǎn)

概念顯式啟動(dòng):必須在Intent中指明啟動(dòng)的Activity所在的類(lèi)隱式啟動(dòng):Android系統(tǒng)根據(jù)Intent的動(dòng)作和數(shù)據(jù)來(lái)決定啟動(dòng)哪一個(gè)Activity。也就是說(shuō),在隱式啟動(dòng)時(shí),Intent中只包含需要執(zhí)行的動(dòng)作和所包含的數(shù)據(jù),而無(wú)須指明具體啟動(dòng)哪一個(gè)Activity,選擇權(quán)由Android系統(tǒng)和最終用戶(hù)來(lái)決定。3.7Activity的啟動(dòng)和跳轉(zhuǎn)

3.7.1兩種啟動(dòng)和跳轉(zhuǎn)方式顯式:

使用Intent來(lái)顯式啟動(dòng)Activity,首先要?jiǎng)?chuàng)建一個(gè)Intent對(duì)象,并為它指定當(dāng)前的應(yīng)用程序上下文以及要啟動(dòng)的Activity這兩個(gè)參數(shù),然后把這個(gè)Intent對(duì)象作為參數(shù)傳遞給startActivity這個(gè)方法。1 Intentintent=newIntent(IntentDemo.this,ActivityToStart.class);2 startActivity(intent);3.7Activity的啟動(dòng)和跳轉(zhuǎn)

3.7.1兩種啟動(dòng)和跳轉(zhuǎn)方式隱式:

使用Intent來(lái)隱式啟動(dòng)Activity,首先也要?jiǎng)?chuàng)建一個(gè)Intent對(duì)象,不需要指明需要啟動(dòng)哪一個(gè)Activity(匹配的Activity可以是應(yīng)用程序本身的,也可以是Android系統(tǒng)內(nèi)置的,還可以是第三方應(yīng)用程序提供的),而由Android系統(tǒng)來(lái)決定,這樣有利于使用第三方組件,然后把這個(gè)Intent對(duì)象作為參數(shù)傳遞給startActivity這個(gè)方法。3.7Activity的啟動(dòng)和跳轉(zhuǎn)

3.7.1兩種啟動(dòng)和跳轉(zhuǎn)方式隱式:1 Uriuri=Uri.parse("");2 Intentintent=newIntent(Intent.ACTION_VIEW,uri);

3 startActivity(intent);3.7Activity的啟動(dòng)和跳轉(zhuǎn)

3.7.2帶值跳轉(zhuǎn)方式3.7.1節(jié)中介紹了Activity啟動(dòng)和跳轉(zhuǎn)的兩種方式,這兩種方式都是不帶值進(jìn)行跳轉(zhuǎn),即沒(méi)有把第一個(gè)Activit

溫馨提示

  • 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)論