上次第一次使用Android Studio創(chuàng)建了一個(gè)hello World項(xiàng)目是不是很開心蚕礼,今天我們?cè)谏洗位A(chǔ)上使用幾個(gè)簡單的小控件烟具。
還記得我昨天說的activity_main.xml布局存放的位置嗎?沒錯(cuò)就在***\app\src\main\res\layout目錄下奠蹬。我們點(diǎn)雙擊點(diǎn)開activity_main.xml朝聋,在下面有一個(gè)叫做Text的地方
里面很多惡心的東西對(duì)吧-。+囤躁,不著急玖翅,我們慢慢看,從我們需要的開始看起割以。
我們首先來看這個(gè)<TextVIew這個(gè)標(biāo)簽
我建議把他打成這樣的金度,看著就很明顯了。
我把這個(gè)/>打到了下一行严沥,沒錯(cuò)猜极,他跟<TextView是一對(duì)的,TextView是一個(gè)控件消玄,在.xml文件中跟伏,最基礎(chǔ)的控件格式就是<????/>(當(dāng)然有復(fù)合的控件,就是控件嵌套翩瓜,這個(gè)以后再講受扳,我們先從最簡單的開始),而尖括號(hào)里面的就是他的一系列屬性兔跌,當(dāng)然不止這些屬性勘高,還有很多我們可能用不到。
首先來看這個(gè)layout_Width,這個(gè)是指這個(gè)控件的寬度华望,他默認(rèn)是wrap_content蕊蝗,英文翻譯是包裹僅滿足,而這個(gè)在程序中的意思就是指自動(dòng)適應(yīng)大小赖舟,他的大小會(huì)根據(jù)你textview的文字量來調(diào)整蓬戚。其實(shí)我們還可以自定義他的大小,我們可以直接指定他是多少dp
這是我們一開始的樣子
我把它指定成20dp
發(fā)現(xiàn)了嗎宾抓,他被擠壓成長的了子漩。。因?yàn)槲覀冎付ㄋ拈L度為20dp石洗,而他的高(下面那個(gè)屬性layout_height屬性)還是wrap_content幢泼,所以會(huì)被拉長。
下面的一個(gè)屬性text劲腿,是指我們輸入的文字是什么旭绒,我們輸入什么鸟妙,TextView就會(huì)顯示什么焦人。這個(gè)不談了。
在下面的四個(gè)屬性我們暫時(shí)不用管重父,以后講布局的時(shí)候再說花椭。
接下來我們看一看另一個(gè)控件Button。
button在英語中有按鈕的意思房午,沒錯(cuò)他在android中就是一個(gè)按鍵矿辽,我們平時(shí)最常用的QQ微信里面有很多按鍵(登錄、注冊(cè)郭厌、發(fā)送消息袋倔、等等很多),他們不同按鍵都有各自不同的功能折柠,很神奇吧宾娜。。實(shí)現(xiàn)什么功能使我們自己來完成的扇售,下面我們來看看這個(gè)控件前塔。
根據(jù)上面的<TextView/>,我想大家應(yīng)該知道怎么通過代碼在.xml文件中創(chuàng)建控件了吧(為什么要這么說呢承冰,因?yàn)槲覀兛梢圆挥么a來創(chuàng)建华弓,而且也不只是在.xml文件中可以創(chuàng)建控件,這個(gè)以后再講)困乒,
可以看得出來寂屏,我們的AS已經(jīng)很智能了,但是還是不要過分依賴,因?yàn)檫@些只是簡單的控件凑保,有很多名字長到讓你吐的冈爹,所以為了以后能手寫代碼,還是自己全敲出來吧欧引。
我們點(diǎn)enter后频伤,發(fā)現(xiàn)他自動(dòng)寫出來這兩個(gè)屬性,那我們不客氣了芝此,直接enter
看到了吧憋肖,左上角有一個(gè)灰白色的框框,這個(gè)就是我們的button按鍵婚苹,有些空對(duì)吧岸更,我們給他添加幾個(gè)文字,TextView是怎么修改文字的膊升,這個(gè)button應(yīng)該也會(huì)了吧(注意怎炊,不是所有的控件都有text這個(gè)屬性)。
修改成了這個(gè)樣子廓译,我相信你現(xiàn)在也能弄成這樣评肆。
打開我們的模擬器,來看看模擬器上是什么樣子的非区。相信程序燒完之后你就在模擬器上狂點(diǎn)這個(gè)按鍵-瓜挽。+,但是好像沒什么用征绸,只有按下去的動(dòng)作是吧久橙。來,我們來搞一個(gè)讓他能干點(diǎn)事情管怠。
對(duì)了淆衷,在這之前,我們還要講另一個(gè)屬性渤弛,這個(gè)id屬性祝拯。
這個(gè)屬性是所有空間都會(huì)有的一個(gè)屬性。現(xiàn)在是一個(gè)button暮芭,如果兩個(gè)呢鹿驼,如果有好多個(gè)呢,你怎么區(qū)分辕宏?咱們每個(gè)人都有自己的身份證對(duì)吧畜晰。這個(gè)id屬性就相當(dāng)于每個(gè)控件的身份證,他可以告訴我們我們正在操縱的是哪個(gè)控件瑞筐。
咱們弄了這么久還沒有玩過java代碼對(duì)吧凄鼻,現(xiàn)在可以了哦。
希望你現(xiàn)在還能找到MainActivity這個(gè)文件。
雙擊點(diǎn)開以后块蚌,是不是很親切闰非。
雖然我們是學(xué)過java的,也能看懂一些語法峭范,但是這些類到底是干什么的我們還是不懂對(duì)吧财松,還是那句話,慢慢來纱控,不要著急辆毡。
首先我們看到我們自己創(chuàng)建的MainActivity是繼承了AppCompatActivity這個(gè)控件(他是什么以后說),然后里面重寫了onCreate這個(gè)方法甜害。我們所有的activity都是從onCreate這個(gè)方法開始的舶掖。
這個(gè)代碼里面還有很多看不懂的東西吧,打住尔店,我們今天只需要了解到這里眨攘,夠我們今天用就行了。
現(xiàn)在我在MainActivity里面創(chuàng)建一個(gè)TextView對(duì)象和一個(gè)Button對(duì)象嚣州。
很簡單對(duì)吧■晔郏現(xiàn)在這兩個(gè)對(duì)象應(yīng)該是空引用(不要問我為什么,自己補(bǔ)java去-避诽。+)龟虎,注意我們接下來的步驟
記不記得剛才說的id了璃谨,我們這兩行代碼就是為了獲取剛才在.xml文件中創(chuàng)建的兩個(gè)控件的id沙庐,我們?cè)趈ava中拿到了這兩個(gè)id,現(xiàn)在mTV和mBut這兩個(gè)對(duì)象已經(jīng)指向了.xml中的兩個(gè)控件佳吞,我們可以通過方法對(duì)他們進(jìn)行一系列操縱拱雏。
這一下添加的是不是有點(diǎn)多-。+底扳,沒事慢慢捋一捋铸抑,首先我們是調(diào)用了mBut的一個(gè)方法setOnClickListener,里面的參數(shù)是一個(gè)匿名內(nèi)部類OnCLickListener衷模,(關(guān)于匿名內(nèi)部類的知識(shí)點(diǎn)鹊汛,自己回去補(bǔ)吧)。他是一個(gè)接口阱冶,而我們實(shí)現(xiàn)了這個(gè)接口刁憋,在onCLick方法里面,我們寫什么木蹬,這個(gè)button就實(shí)現(xiàn)了什么功能至耻,現(xiàn)在我們實(shí)現(xiàn)一個(gè)很簡單的功能。
我們調(diào)用了mTv的setText方法尘颓,這個(gè)方法會(huì)把我們TextView里面的文字修改為現(xiàn)在的文字走触。run一下模擬器,看一看現(xiàn)在是什么樣子疤苹。
看到了嗎互广,點(diǎn)擊了按鍵以后,我們的TextView改變了卧土,變成了這些文字兜辞。是不是很有意思呢。