Android對話框Dialog大全建立你自己的對話框._第1頁
Android對話框Dialog大全建立你自己的對話框._第2頁
Android對話框Dialog大全建立你自己的對話框._第3頁
Android對話框Dialog大全建立你自己的對話框._第4頁
Android對話框Dialog大全建立你自己的對話框._第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、An droid對話框(Dialog 大全 建立你自己的對話框Activities 提供了一種方便管理的創(chuàng)建、保存、回復的對話框機制,例如on CreateDialog(i nt, onPrep areDialog(i nt. Dialog , showDialog(i ntdismissDialog(i nt等方法,如果使用這些方法的話,Activity 將通過getOwnerActivity(方法返回該Activity 管理的對話框(dialog.on CreateDialog(i nt:當你使用這個回調函數時,An droid系統(tǒng)會有效的設置這個Activity為每個對話框的所有者,從而

2、自動管理每個對話框的狀態(tài)并掛靠 到Activity上。這樣,每個對話框繼承這個 Activity 的特定屬性。比如,當一個 對話框打開時,菜單鍵顯示為這個Activity定義的選項菜單,音量鍵修改Activity使用的音頻流。showDialog(i nt:當你想要顯示一個對話框時,調用showDialog(i nt id 方法并傳遞一個唯一標識這個對話框的整數。當對話框第一次被請求時,An droid從你的Activity 中調用onCreateDialog(int id,你應該在這里初始化這個對話框Dialog。這個回調方法被傳以和 showDialog(int id相同的ID。當你創(chuàng)建這

3、個對話框后,在Activity的最后返回這個對象。onPrep areDialog(i nt. Dialog:在對話框被顯示之前,An droid還調用了可選的回調函數onPrepareDialog(int id, Dialog.如果你想在每一次對話框被打開時改變它的任何屬性,你可以定義這個方法。這個方法在每次打開對話框時被調 用,而onCreateDialog(int僅在對話框第一次打開時被調用。如果你不定義onPrep areDialog(,那么這個對話框將保持和上次打開時一樣。這個方法也被傳 遞以對話框的ID,和在onCreateDialog(中創(chuàng)建的對話框對象。dismissDialo

4、g(i nt:當你準備關閉對話框時,你可以通過對這個對話框調用dismiss(來消除它。如果需要,你還可以從這個Activity 中調用dismissDialog(int id 方法,這實際上將為你對這個對話框調用dismiss( 方法。如果你想使用on CreateDialog(i ntid方法來管理你對話框的狀態(tài)(就如同在前面的章節(jié)討論的那樣),然后每次你的對話框消 除的時候,這個對話框對象的狀態(tài)將由該Activity 保留。如果你決定不再需要這個對象或者清除該狀態(tài)是重要的,那么你應該調用removeDialog(i nt id。這將刪除任何內部對象引用而且如果這個對話框正在顯示,它將被消

5、除。F面是幾種對話框的效果©提示確認退出鳴?圖12你S歡李連杰的電影嗎?取'浦O請輸入單選框ItemlItem?1©復選框Itemi_JItem 2恥胃0列表框Item 1Item22:42 AM©自定義布局圖1效果:該效果是當按返回按鈕時彈出一個提示,來確保無誤操作,采用常見的對話框 樣式。代碼:創(chuàng)建對話框方法dialog(pr otected void dialog( AlertDialog.Builder builder = new Builder(Main.this:builder.setMessage("確認退岀嗎?":bui

6、lder.setTitle(" 提示":builder.set Po sitiveButt on("確認",new OnClickListener( O/ernde p ublic void onClick(Dialoglnteface dialog, int which dialog-dismiss(:Mai n.this.fi nish(;builder.setNegativeButt on("取消",new OnClickListener( ©Override p ublic void on Click(Dialogl

7、 nteface dialog, i nt which dialog.dismissCbuilder.create(.show(;方法中調用此方法在 on KeyDow n(i nt keyCode, KeyEve nt eve ntp ublic boolea n on KeyDow n(i nt keyCode, KeyEve nt event if (keyCode = KeyEve nt.KE YCODE_BACK && eve nt.getRe peatCo unt( = 0 dialog(;return false;圖2效果:改變了對話框的圖表,添加了三個按鈕Dia

8、log dialog = new AlertDialog.Builder(this.setlc on(喜好調查an droid.R.drawable.btn_star.setTitle(" ".setMessage("你喜歡李連杰的電影嗎?".set PositiveButto n("很喜歡",new On ClickListe ner( Overridep ublic void on Click(Dialogl nteface dialog, i nt which / TODO Auto-ge nerated method stub

9、Toast.makeText(Main .this,"我很喜歡他的電影。"Toast丄ENGTH_LONG.show(;.setNegativeButto n(”不喜歡",new On ClickListe ner( Overridep ublic void on Click(DialogI nteface dialog, i nt which / TODO Auto-ge nerated method stubToast.makeText(Mai n.this,"Toast.LENGTH LONG我不喜歡他的電影。".show(;.setNe

10、utralButto n(”般", new On ClickListe ner( Overridep ublic void on Click(DialogI nteface dialog, i nt which / TODO Auto-ge nerated method stubToast.makeText(Main .this,"Toast.LENGTH LONG談不上喜歡不喜歡。".show(;.create(;dialog.show(;圖3效果:信息內容是一個簡單的View類型new AlertDialog.Builder(this.setTitle(”請輸

11、入".setIc on(an droid.R.drawable.ic_dialog _in fo.setView(new EditText(this.set PositiveButt on(”確定", null.setNegativeButto n(” 取消",n ull.show(;圖4效果:信息內容是一組單選框復選框new AlertDialog.Builder(this.setTitle("".setMultiChoiceltems(new Str in g "Item1", "Item2" , n

12、ull, null.set PositiveButto n(”確定",null.setNegativeButto n(”取消",n ull.show(;單選框".setIc on(圖5效果:信息內容是一組多選框new AlertDialog.Builder(this.setTitle(" an droid.R.drawable.ic_dialog _in fo.setSi ngleChoicelte ms(new Stri ng "Itemi", "Item2" , 0, new DialogI nteface.O

13、 nClickListe ner( p ublic void on Click(Dialogl nteface dialog, i nt which dialog.dismiss(;.setNegativeButto n(”取消",n ull.show(;列表框".setltems(圖6效果:信息內容是一組簡單列表項new AlertDialog.Builder(this.setTitle(" new Stri ng "Item1", "Item2" , null.setNegativeButt on( "確定&q

14、uot;,null.show(;圖7效果:信息內容是一個自定義的布局1.布局文件htt p:/schemas.a pk/res/a ndroid " an droid:layout_height="wra p_con te nt" an droid:layout_width="wra p_content" an droid:backgrou nd="#ffffffff" an droid:orie ntatio n="honz on tal" an droid:id="+id/dialog&qu

15、ot;>姓名:"/>an droid:layout_width="wrap_c ontent" an droid:id="+id/tv name" an droid:text=" an droid:layout_width="wrap_c ontent" an droid:id="+id/et name" an droid:mi nWidth="100di p"/>2.調用代碼Layoutl nflater in flater = getLayout In

16、flater(;View layout = in flater.i nflate(R.layout.dialog,自定義布局".setView(layout(ViewGrou p fin dViewById(R.id.dialog;new AlertDialog.Builder(this.setTitle(”.setPositiveButton(”確定 ”,null .setNegativeButton(” 取消 ”,null.show(;Android對話框【Dialog】去除白色邊框代碼使用樣式文件,在 values目錄下新建styles.xml文件,編寫如下代碼:< re

17、sources< style name="dialog"parent="android:style/Theme.Dialog">< itemname="a ndroid:wi ndowFrame">null item>< itemname="a ndroid:w in dowIsFloati ng">true item>< itemname="a ndroid:wi ndowlsTra nsluce nt">false item>

18、< itemname="a ndroid:w in dowNoTitle"true item>< itemname="a ndroid:backgro un d">android:color/black item>< itemname="a ndroid:wi ndowBackgro un d">null item>< itemname="a ndroid:backgro un dDimE nabled">false item>style> resource復制代碼調用時,使用AlerDialog的接口類,Dialog接口編寫如下代碼:Dialog dialog = new Dialog(SetActivity. this , R.style.dialog;dialog.setContentView(R.layout.test;dialog.show(;復制代碼F面我們查看一下 Dialog的源碼文件,里面的構造函數為如下:Public Dialog(

溫馨提示

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

評論

0/150

提交評論