從第二課開始察纯,我們就要了解一些關(guān)于活動(dòng)activity的內(nèi)容了闸拿。
首先了解一下活動(dòng)是什么污桦∧洞酰活動(dòng)(Activity)是最容易吸引用戶的地方了,它是一種可以包含用戶界面的組件凡橱,主要用于和用戶進(jìn)行交互小作,一個(gè)應(yīng)用程序可以包含零個(gè)或者多個(gè)活動(dòng)。我搜索了相關(guān)知識(shí)稼钩,讓我們看看官方文檔是怎么定義的:“AnActivityis an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map.”大概意思是說(shuō)躲惰,Activity是一個(gè)可以讓屏幕提供用戶交互動(dòng)作的組件,比如打電話变抽、照相础拨、發(fā)送郵件和查看地圖等。簡(jiǎn)單來(lái)說(shuō)绍载,我們?cè)趹?yīng)用程序中能看到的內(nèi)容诡宗,絕大多數(shù)都是Activity組件提供的。
在這里告訴大家一個(gè)小技巧如何配置eclipse的代碼自動(dòng)提示功能击儡,非常實(shí)用哦K帧!阳谍!
EcliPSe代碼里面的代碼提示功能默認(rèn)是關(guān)閉的蛀柴,只有輸入“.”的時(shí)候才會(huì)提示功能,
下面說(shuō)一下如何修改eclipse配置矫夯,開啟代碼自動(dòng)提示功能打開 Eclipse? -> Window -> Perferences -> Java -> Editor -> Content Assist鸽疾,在右邊最下面一欄找到 auto-Activation ,下面有三個(gè)選項(xiàng)训貌,找到第二個(gè)“Auto activation triggers for Java:”選項(xiàng)在其后的文本框中會(huì)看到一個(gè)“.”存在制肮。這表示:只有輸入“.”之后才會(huì)有代碼提示和自動(dòng)補(bǔ)全,我們要修改的地方就是這递沪。把該文本框中的“.”換掉豺鼻,換成“abcdefghijklmnopqrstuvwxyz.”,這樣款慨,你在Eclipse里面寫Java代碼就可以做到按“abcdefghijklmnopqrstuvwxyz.”中的任意一個(gè)里字符都會(huì)有代碼提示儒飒。
接下來(lái)就是活動(dòng)的用法了
創(chuàng)建一個(gè)Activity
聲明活動(dòng),Activity在manifest注冊(cè)
除了要定義和繼承Activity之外檩奠,我們還需要在manifest中進(jìn)行注冊(cè)桩了,表示聲明届良,如果不聲明的話,這個(gè)Activity在運(yùn)行時(shí)候圣猎,會(huì)報(bào)ANR錯(cuò)誤,就是應(yīng)用程序沒(méi)有響應(yīng)乞而。那么怎么聲明呢送悔,我們每新建一個(gè)項(xiàng)目時(shí)候,都會(huì)有一個(gè)AndroidManifest.xml文件爪模,我們需要在AndroidManifest.xml文件中對(duì)我們的Activity進(jìn)行注冊(cè)欠啤。如圖
可以看到每一個(gè)應(yīng)用程序,都必須有一個(gè)AndroidManifest.xml屋灌。
活動(dòng)的加載布局
我們現(xiàn)在對(duì)這個(gè)布局稍做編輯洁段,添加一個(gè)按鈕,如下所示:
這里添加了一個(gè)Button元素共郭,并在Button元素的內(nèi)部增加了幾個(gè)屬性祠丝。android:id是給當(dāng)前的元素定義一個(gè)唯一標(biāo)識(shí)符,之后可以在代碼中對(duì)這個(gè)元素進(jìn)行操作除嘹。你可能會(huì)對(duì)@+id/button_1這種語(yǔ)法感到陌生写半,但如果把加號(hào)去掉,變成@id/button_1尉咕,這你就會(huì)覺(jué)得有些熟悉了吧叠蝇,這不就是在XML中引用資源的語(yǔ)法嗎,只不過(guò)是把string替換成了id年缎。是的悔捶,如果你需要在XML中引用一個(gè)id,就使用@id/id_name這種語(yǔ)法单芜,而如果你需要在XML中定義一個(gè)id蜕该,則要使用@+id/id_name這種語(yǔ)法。隨后android:layout_width指定了當(dāng)前元素的寬度洲鸠,這里使用match_parent表示讓當(dāng)前元素和父元素一樣寬蛇损。android:layout_height指定了當(dāng)前元素的高度,這里使用wrap_content坛怪,表示當(dāng)前元素的高度只要能剛好包含里面的內(nèi)容就行淤齐。android:text指定了元素中顯示的文字內(nèi)容。如果你還不能完全看明白袜匿,沒(méi)有關(guān)系更啄,關(guān)于編寫布局的詳細(xì)內(nèi)容我會(huì)在下一章中重點(diǎn)講解,本章只是先簡(jiǎn)單涉及一些【拥疲現(xiàn)在按鈕已經(jīng)添加完了祭务,你可以點(diǎn)回Graphical Layout切換卡内狗,預(yù)覽一下當(dāng)前布局
可以在中央的預(yù)覽區(qū)域看到,按鈕已經(jīng)成功顯示出來(lái)了义锥,這樣一個(gè)簡(jiǎn)單的布局就編寫完成了柳沙。
下面來(lái)說(shuō)說(shuō)使用intent在活動(dòng)之間穿梭
Intent是Android程序中各組件之間進(jìn)行交互的一種重要方式,它不僅可以指明當(dāng)前組件想要執(zhí)行的動(dòng)作拌倍,還可以在不同組件指甲傳遞數(shù)據(jù)赂鲤。Intent的用法大致可以分成兩種,顯式Intent和隱式Intent
1.使用顯式Intent
Intent(Context packageContext,Class cls)
接受兩個(gè)參數(shù)柱恤,第一個(gè)參數(shù) Context 要求提供一個(gè)啟動(dòng)活動(dòng)的上下文数初,第二個(gè)參數(shù)Class則是指定想要啟動(dòng)的目標(biāo)活動(dòng),通過(guò)這個(gè)構(gòu)造函數(shù)就可以構(gòu)造出Intent的意圖
通過(guò)startActivity(Intent intent)啟動(dòng)目標(biāo)活動(dòng)
2.使用隱式Intent
不明確指出我們想要啟動(dòng)哪一個(gè)活動(dòng)梗顺,而是指定了一系列更為抽象的action和category等信息泡孩,然后交由系統(tǒng)去分析這個(gè)Intent并找出合適的活動(dòng)去啟動(dòng)。
什么叫合適的活動(dòng)呢寺谤,簡(jiǎn)單來(lái)講就是可以響應(yīng)我們這個(gè)隱式Intent的活動(dòng)仑鸥,
通過(guò)在標(biāo)簽下配置的內(nèi)容,可以指定當(dāng)前活動(dòng)能夠響應(yīng)的action和category变屁。只有和中的內(nèi)容同時(shí)能夠匹配上Intent中指定的action和category時(shí)锈候,這個(gè)活動(dòng)才能響應(yīng)該Intent
標(biāo)簽包含了一些附加信息,更精確的指明當(dāng)前活動(dòng)敞贡。
Intent intent = new Intent("android.intent.action.MAIN");這是Intent的另外一個(gè)構(gòu)造函數(shù)泵琳,直接將action的字符串傳了進(jìn)去。
每一個(gè)Intent中只能指定一個(gè)action誊役,但卻能指定多個(gè)category
調(diào)用Intent中的addCategory()方法來(lái)添加一個(gè)category
來(lái)看下小成果
只有啟程获列,才會(huì)到達(dá)理想和目的地,只有拼搏蛔垢,才會(huì)獲得輝煌的成功击孩,只有播種,才會(huì)有收獲鹏漆。只有追求巩梢,才會(huì)品味堂堂正正的人。
稔熟小生