安卓課件第四章.android基礎(chǔ)控件_第1頁
安卓課件第四章.android基礎(chǔ)控件_第2頁
安卓課件第四章.android基礎(chǔ)控件_第3頁
安卓課件第四章.android基礎(chǔ)控件_第4頁
安卓課件第四章.android基礎(chǔ)控件_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、求知若渴 求真教育第四章. Android基礎(chǔ)控件andro d學(xué)習(xí)目標(biāo):掌握View的常用事件掌握Android中基礎(chǔ)控件和常用屬性掌握各種控件的動態(tài)創(chuàng)建和屬性設(shè)置掌握各種控件的獨有事件第四章. Android基礎(chǔ)控件 1.View常用事件接口 View的事件設(shè)置的幾種方法 2.基礎(chǔ)組件EditText編輯框常用屬性事件RadioGroup與RadioButton單選按鈕常用屬性事件 CheckBox 多選按鈕Datcker&TimckerChronometer計時器 初識CountDownTimer3.學(xué)員作業(yè)課程內(nèi)容:1.View常用事件接口View的事件View的事件些動作進(jìn)行處理是指

2、用戶與應(yīng)用交互,當(dāng)用戶對View進(jìn)行點擊,長按,觸摸,移動等動作時,程序?qū)@OnC ckL s enerOnLongC ckL s ener OnToucheL s ener點擊V ew時的長按V ew時的觸摸V ew時的Android 系統(tǒng)中,OnClickListener 是一種處理的是點擊事件的接口。pub c vo d onC ck(V ew v)/參數(shù)v為事件源控件,當(dāng)長時間按下此控件時才會觸發(fā)該方法。/當(dāng)多個組件共用同一個器時,用來區(qū)分組件在AndroidApp應(yīng)用中,OnLongClick事件表示長按2秒以上觸發(fā)的事,OnLongClickListener接口與 OnClickL

3、istener接口原理基本相同,只是該接口為View長按事件的捕捉接口,即當(dāng)長時間按下某個 View時觸發(fā)的事件,該接口對應(yīng)的回調(diào)方法簽名如下pub c boo ean onLongC ck(V ew v)/參數(shù)v為事件源控件,當(dāng)長時間按下此控件時才會觸發(fā)該方法。/當(dāng)多個組件共用同一個器時,用來區(qū)分組件/返回值:該方法的返回值為一個boo ean類型的變量,/當(dāng)返回 rue時,表示已經(jīng)完整地處理了這個事件,并不希望其他的回調(diào)方法再次進(jìn)行處理;/當(dāng)返回fa se時,表示并沒有完全處理完該事件,更希望其他方法繼續(xù)對其進(jìn)行處理。您需要記住以下幾點:1)器是個接口,它包含了一個事件觸發(fā)時系統(tǒng)會去調(diào)用的

4、函數(shù)2) 在實現(xiàn)類中,根據(jù)您項目的需要重寫這個函數(shù)3) 實現(xiàn)后的器需要綁定到按鈕上,就像一個耳機(jī)可以發(fā)出聲音,但您不去戴它,您是聽不到它發(fā)出的。一般的情況是這個View可能需要這個器,而另外一個View需要另外一個器,每個監(jiān)各司其職,但功能相似時,也可以多個按鈕共同綁定一個器。4) 各種控件,都有常用的事件,綁定器的函數(shù)命名規(guī)則是setOn*Listener在Activity中,使用View findViewById(resId)方法與布局中的控件綁定設(shè)置的幾種方法1) 讓Activity實現(xiàn)接口pubc c ass Ma nAc v y ex ends Ac v yp e en s OnCO

5、verr deckLsener pro ec ed vo d onCrea e(Bund esuper.onCrea e(savedIns ansavedIns an a e);v y_ a n);a e) seen V ew(R. ayou .acBu on backback.se OnC= (Bu on) f ndV ewById(R. d.back);ckL s ener( h s);Overr depub c vo d onC/點擊事件ck(V ew v) 2)內(nèi)部類pubc c ass Ma nAcv y ex ends Ac v yOverr depro ec ed vo d on

6、Crea e(Bund e super.onCrea e(savedIns ansavedIns an a e);v y_ a n);a e) seen V ew(R. ayou .acBu on back = (Bu on) f ndV ewById(R. d.back);back.se OnC ckL s ener(new OnC ckL s ener() Overr depub c vo d onC ck(V ew v) /點擊事件);3) onClick可以在xml中設(shè)置然后在代碼中建立點擊事件方法必須是public void 名稱同android:onClick(View v)pub

7、 c vo d bu onC/點擊事件ck(V ew v)4) 實現(xiàn)類pub c c ass MyC ck Overr depub c vo d onC/點擊事件Overr dep e en s OnC ckL s enerck(V ew v) pro ec ed vo d onCrea e(Bund esuper.onCrea e(savedIns ansavedIns an a e);v y_ a n);a e) se BuMyCen V ew(R. ayou .acon back = (Bu on) f ndV ewById(R. d.back);cks ener = new MyC c

8、k();OnC ckL s ener( s ener);back.se5) 成員變量pr va e OnCckL s eners ener = new OnC ckL s ener()Overr depub c vo d onC ck(V ew v) /點擊事件;Overr depro ec ed vo d onCrea e(Bund e super.onCrea e(savedIns ansavedIns an a e);v y_ a n);a e) seen V ew(R. ayou .acBu on back = (Bu on) f ndV ewById(R. d.back);back.

9、se OnC ckL s ener( s ener);2.基礎(chǔ)組件yEditText編輯框EditText繼承于TextView,擁有TextView中所有的屬性和方法,一般用來提供給用戶進(jìn)行文字,輸入操作等常用屬性andro d:cap a ze 設(shè)置英文字母大寫類型。設(shè)置如下值:/sen en僅第一個字母大寫;/words每一個單詞首字母大小,用空格區(qū)分單詞;/characers每一個英文字母都大寫。在模擬器上用PC鍵盤直接輸入可以出效果,但是用軟鍵盤無效果andro andro andro。androd:d gd:ed d:h nsab設(shè)置允許輸入哪些字符。如“1234567890. -

10、*/%n()”設(shè)置是否可編輯。仍然可以獲取光標(biāo),但是無法輸入。Tex 為空時顯示的文字提示信息,可通過 ex Co orH n 設(shè)置提示信息的顏色ed: eOp/nor/aons aGo,設(shè)置軟鍵盤的En er鍵。可用 設(shè)置多個,有如下值可設(shè)置:默認(rèn),換行軟鍵盤下方變成“前往” “去往” “GO” 根據(jù)輸入法不同而不同(下面同)。/a/a/a/aSearch, Send Nex , Done軟鍵盤下方變成“搜索”或者放大鏡。軟鍵盤下方變成“發(fā)送”。軟鍵盤下方變成“下一個”。軟鍵盤下方變成“完成”,點擊后光標(biāo)保持在原來的輸入框上,并且軟鍵盤關(guān)閉androandro androd: npuType

11、設(shè)置文本的類型,用于幫助輸入法顯示合適的鍵盤類型。V ew的寬度為N個字符的寬度。參見Tex V ew中此屬性的截圖。限制輸入字符數(shù)。如設(shè)置為5,那么僅可以輸入5個漢字/數(shù)字/英文字母。d:e s 設(shè)置Tex d: axLeng h事件EditText作為用戶輸入組件,使用頻率非常高,而且當(dāng)文字的改變,修改Enter鍵后,都要去處理Enter鍵事件Ed Tex e Done = (Ed Tex ) f ndV ewById(R. d.e Done);注:EditText大部分屬性都屬于TextView,但在TextView上設(shè)置沒有效果所有的控件都可以在java代碼中創(chuàng)建出來,并且大部分的屬性

12、都對應(yīng)set與get方法,比如V ew v ew= new V ew(exex )ex 是上下文,是Ac v y父類,一般傳入當(dāng)前Ac v/設(shè)置En er按鍵處理事件e DoOnEd orAL s ener(new OnEd orAL s ener() Overr depub c boo ean onEd orA(Tex V ew v, naId, KeyEven even )/處理/a/evenId 當(dāng)前事件組件的資源ID,用來區(qū)分多個Ed Tex 用同一個事件源,封裝了當(dāng)前操作動作器re urn fase;);文字改變Ed Tex e Done = (Ed Tex ) f ndV ewBy

13、Id(R. d.e Done);/添加一個文字改變時e Done.addTex ChangedL s ener(new Tex Wa cher() Overr depub c vo d onTex Changed(CharSequen, n s ar , n before, n coun) /文字改變時 回調(diào)此方法Overr depub c vo d beforeTex Changed(CharSequen n af er) /文字改變之前, n s ar , n coun ,Overr depub c vo d af erTex Changed(Ed ab e s) /文字改變之后0.);R

14、adioGroup與RadioButton單選按鈕RadioButton是Button的子類,所以可以直接使用Button支持的各種屬性,如果需要多個按鈕同時只能被選中一個,需要放在同一個RadioGroup組中。RadioGroup是LinearLayout的子類,默認(rèn)為從上到下排列子元素,如果需要改變成橫向,需要設(shè)置android:orienion為horizontalRad a)b)c)d)e)oBu on和Rad oGroup的關(guān)系:Rad oBu on表示單個圓形單選框,而Rad oGroup是可以容納多個Rad oBu on的容器每個Rad oGroup中的Rad oBu on同時

15、只能有一個被選中不同的Rad oGroup中的Rad oBu on互不相干,即如果組A中有一個選中了,組B中依然可以有一個被選中大部分場合下,一個Rad oGroup中至少有2個Rad oBu on大部分場合下,一個Rad oGroup中的Rad oBu on默認(rèn)會有一個被選中,并建議您將它放在Rad oGroup中的起始位置常用屬性RadioGroup常用屬性andro d:checkedBu on 值為數(shù)字,這是子單選按鈕應(yīng)該在默認(rèn)情況下此單選組內(nèi)選中的ID事件當(dāng)RadioGroup中的選中項變更后,常常需要處理其他視圖,比如,變更成“女”后,可能需要顯示符合該的頭像列表進(jìn)行更新。Radi

16、oGroup的子控件改變位于android.widget.RadioGroup.OnCheckedChangeListenergroup.se OnCheckedChangeL s ener(new Rad oGroup.OnCheckedChangeL s ener() Overr depub c vo d onCheckedChanged(Rad oGroup group, n checkedId) /其中實現(xiàn)方法中的checkedId代表當(dāng)前組中,選中的 d號,每次組中按鈕選擇被改變都會調(diào)用次/如果組中按鈕未給 d,那么會按照當(dāng)前組中的位置排序,從1開始/但是需要注意,在頁面切換時,此

17、d會一直增長,一般使用取余%的方法防止空指針/checkedId%group.ge Ch dCoun ();RadioButton的選中改變時位于poundButton.OnCheckedChangeListenerrad oBu on.se OnCheckedChangeL s ener(newCo poundBu on.OnCheckedChangeL s ener() 注意:RadioGroup的事件和RadioButton的設(shè)置事件名稱雖然一樣,都是 setOnCheckedChangeListener();并且傳入的類名也一樣OnCheckedChangeListener,但是類并不

18、是同一個,屬于不同包下的類,如果這兩個類都需要實例化,那么可以用包名去區(qū)分,View的 OnClick事件和Dialog的OnClick事件也是同理。Overr depub c vo d onCheckedChanged(Co poundBu on bu onV ew, boo ean sChecked) 其中實現(xiàn)方法中的 s hd代表當(dāng)前u Bun的選中狀態(tài)方法,傳入 rue/當(dāng)一個組中的按鈕選中改變時,會先調(diào)用當(dāng)前選中的/接著會調(diào)用前一個被選中的按鈕,傳入fa se。);CheckBox 多選按鈕CheckBox和Button一樣,也是一種古老的控件,它的優(yōu)點在于,不用用戶去填寫具體的信息

19、,只需輕輕點擊,缺點在于只”和“否”兩種情況,但往往利用它的這個特性,來獲取用戶的一些信息。如一個表單中,常常讓用戶填寫“是否已經(jīng)結(jié)婚”,顯然讓用戶去填寫“是”或“否”是不合理的,理想的情景是用如下控件:Datcker&Timcker在Android程序中,是:通常需要使用Datcker來設(shè)置日期,Timcker來設(shè)置時間。其基本步驟先定義Datcker和Timcker布局然后通過Calendar類獲得系統(tǒng)時間接著通過init方法將日期傳遞給Datcker初始化日期控件,在響應(yīng)點擊事件中可以通過Datcker的getYear()、getDayOfMonth()、getMonth()函數(shù)獲取具體

20、日期,同時可以在OnDateChangedListener事件中日期變化,設(shè)置時間函數(shù)方法同理。Chronometer計時器計時器組件就是一個可以顯示從某個起始時間開始,一共過去了多長時間的文本,使用Chronometer.由于該組件繼承自己TextView,所以它將法本的形式顯示內(nèi)容,該組件也比較簡單,通常只需要使用以下5個方CheckBox與RadioButton的事件相同,都是poundButton.OnCheckedChangeListenersetBase():用于設(shè)置計時器的超始時間 setFormat():用于顯示時間的格式Format()的信息參數(shù)設(shè)置為”已用時間:%s” start():用于指定開始計時stop():用于指定停止時間 setOnChronometerTickListener():用于為計時器綁定事件器,當(dāng)計時器改變時觸發(fā)該器初識CountDownTimer定時執(zhí)行在一段時候后停止的倒計時,在倒計時執(zhí)行過程中會在固定間隔時間得到通知onTick的調(diào)用是同步的,保證這次調(diào)用不會在之前調(diào)用完成前

溫馨提示

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

最新文檔

評論

0/150

提交評論