首先 :當(dāng)一個(gè)工程部署到模擬環(huán)境上后,當(dāng)用戶點(diǎn)擊你的應(yīng)用名字“android:label='@string/app_name'>”的時(shí)候,操作系統(tǒng)會(huì)根據(jù)配置清單文件(AndroidManifest.xml)尋找到下面的配置節(jié)點(diǎn)“
Java代碼
|
原地址http://leequer./blog/593272 首先 :當(dāng)一個(gè)工程部署到模擬環(huán)境上后,當(dāng)用戶點(diǎn)擊你的應(yīng)用名字“android:label='@string/app_name'>”的時(shí)候,操作系統(tǒng)會(huì)根據(jù)配置清單文件(AndroidManifest.xml)尋找到下面的配置節(jié)點(diǎn)“ Java代碼 ;
這個(gè)配置節(jié)點(diǎn)下的activity節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)中的 Java代碼 這兩個(gè)配置,告訴操作系統(tǒng),這個(gè)activity是程序運(yùn)行的入口類,相當(dāng)與main方法;在一個(gè)應(yīng)用中只要有一個(gè)應(yīng)用配這個(gè)屬性就行了; 然后 :我們看看被指定為程序入口的這個(gè)activity的代碼: Java代碼 package com.android.activity; import android.app.Activity; importandroid.os.Bundle; public class HelloWorldActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.main);} } android平臺(tái)實(shí)例化這個(gè)activity類,其中的onCreate這個(gè)方法不是由程序員來調(diào)用的,是由android這個(gè)平臺(tái)來調(diào)用的,這個(gè)類被實(shí)例化后就直接調(diào)用這個(gè)方法了。其中的super調(diào)用的父類的方法,是用來畫出整個(gè)應(yīng)用的界面的; 值得一提的是 Java代碼 setContentView(R.layout.main); 這端代碼:android的設(shè)計(jì)模式是遵守mvc設(shè)計(jì)模式的,c這層就是activity層,v層是xml文件,在工程目錄中的res下的layout目錄下的文件,布局文件,m業(yè)務(wù)層,要自己寫,不要和c層放到一起,這樣代碼的質(zhì)量很差;那我們回到這句代碼,我們現(xiàn)在知道activity相當(dāng)與action了,那么在struts中負(fù)責(zé)跳轉(zhuǎn)頁面的代碼是mapping.forword('xxxx');我想大家都知道,那么類比,在activity中,負(fù)責(zé)跳轉(zhuǎn)的就是setContentview(xxx);括號(hào)中的內(nèi)容就是視圖層的引用。那我們?cè)賮砜纯催@個(gè)引用的東西 Java代碼 R.layout.main 我前面的文章說過,R.java文件是用來引用資源的,那么看看這里我們就知道他引用了誰。對(duì)了,就是loayout目錄下的main.xml;我們可以看R.java文件中的代碼 Java代碼 package com.android.activity; public final class R { public staticfinal class attr { } public static final class drawable { publicstatic final int icon=0x7f020000; } public static final classlayout { public static final int main=0x7f030000; } public staticfinal class string { public static final int app_name=0x7f040001;public static final int hello=0x7f040000; } } Java代碼 public static final class layout { public static final intmain=0x7f030000; } 這里就是剛才調(diào)用的東西,最終會(huì)對(duì)應(yīng)工程目錄下的res下的layout下的main。xml文件,如果我們?cè)趌ayout下再建立一個(gè)androidxml類型的文件,保存后,會(huì)在R.java中自動(dòng)生成對(duì)應(yīng)的索引; 再然后 說道m(xù)ain.xml文件,我們看看這個(gè)文件,以往我們都是用html或者jsp來顯示頁面,現(xiàn)在用xml了,看看有什么不同, Xml代碼 嚴(yán)格遵守xml文件的格式, 其中,標(biāo)簽 Xml代碼 LinearLayout 直接翻譯中文是線性布局,那就是一種布局方式了,swing中也有,就是指在這個(gè)標(biāo)簽中的元素每個(gè)元素占一行。還有絕對(duì)布局;不建議使用,因?yàn)椴恢朗褂谜叩氖謾C(jī)屏幕大小。還有相對(duì)布局:常用; Xml代碼 TextView 相當(dāng)于label標(biāo)簽。 再來仔細(xì)看看,標(biāo)簽中的屬性 Xml代碼 ![]() |
|
|