android 对话框大全,Android 对话框(Dialog)大全
Activities提供了一種方便管理的建立、保存、回復的對話框機制,例如onCreateDialog(int),?onPrepareDialog(int,?Dialog),?showDialog(int),?dismissDialog(int)等方法,若是使用這些方法的話,Activity將經過getOwnerActivity()方法返回該Activity管理的對話框(dialog).android
onCreateDialog(int):當你使用這個回調函數時,Android系統會有效的設置這個Activity為每一個對話框的全部者,從而自動管理每一個對話框的狀態并掛靠到Activity上。這樣,每一個對話框繼承這個Activity的特定屬性。好比,當一個對話框打開時,菜單鍵顯示為這個Activity定義的選項菜單,音量鍵修改Activity使用的音頻流。ide
showDialog(int):當你想要顯示一個對話框時,調用showDialog(int?id)方法并傳遞一個惟一標識這個對話框的整數。當對話框第一次被請求時,Android從你的Activity中調用onCreateDialog(int?id),你應該在這里初始化這個對話框Dialog。這個回調方法被傳以和showDialog(int?id)相同的ID。當你建立這個對話框后,在Activity的最后返回這個對象。函數
onPrepareDialog(int,?Dialog):在對話框被顯示以前,Android還調用了可選的回調函數onPrepareDialog(int?id,?Dialog).若是你想在每一次對話框被打開時改變它的任何屬性,你能夠定義這個方法。這個方法在每次打開對話框時被調用,而onCreateDialog(int)僅在對話框第一次打開時被調用。若是你不定義onPrepareDialog(),那么這個對話框將保持和上次打開時同樣。這個方法也被傳遞以對話框的ID,和在onCreateDialog()中建立的對話框對象。布局
dismissDialog(int):當你準備關閉對話框時,你能夠經過對這個對話框調用dismiss()來消除它。若是須要,你還能夠從這個Activity中調用dismissDialog(int?id)方法,這實際上將為你對這個對話框調用dismiss()方法。?若是你想使用onCreateDialog(int?id)方法來管理你對話框的狀態(就如同在前面的章節討論的那樣),而后每次你的對話框消除的時候,這個對話框對象的狀態將由該Activity保留。若是你決定再也不須要這個對象或者清除該狀態是重要的,那么你應該調用removeDialog(int?id)。這將刪除任何內部對象引用并且若是這個對話框正在顯示,它將被消除。ui
下面是幾種對話框的效果this
圖1spa
圖2xml
圖3對象
圖4繼承
圖5
圖6
圖7
圖1效果:該效果是當按返回按鈕時彈出一個提示,來確保無誤操做,采用常見的對話框樣式。
代碼:
建立對話框方法dialog()
protected?void?dialog()?{AlertDialog.Builder?builder?=?new?Builder(Main.this);builder.setMessage("確認退出嗎?");
builder.setTitle("提示");
builder.setPositiveButton("確認",?new?OnClickListener()?{
@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{dialog.dismiss();
Main.this.finish();}});
builder.setNegativeButton("取消",?new?OnClickListener()?{
@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{dialog.dismiss();}});
builder.create().show();}
在onKeyDown(int?keyCode,?KeyEvent?event)方法中調用此方法
public?boolean?onKeyDown(int?keyCode,?KeyEvent?event)?{if?(keyCode?==?KeyEvent.KEYCODE_BACK?&&?event.getRepeatCount()?==?0)?{dialog();}return?false;}
圖2效果:改變了對話框的圖表,添加了三個按鈕
Dialog?dialog?=?new?AlertDialog.Builder(this).setIcon(android.R.drawable.btn_star).setTitle("喜愛調查").setMessage("你喜歡李連杰的電影嗎?").setPositiveButton("很喜歡",new?OnClickListener()?{
@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{//?TODO?Auto-generated?method?stubToast.makeText(Main.this,?"我很喜歡他的電影。",Toast.LENGTH_LONG).show();}}).setNegativeButton("不喜歡",?new?OnClickListener()?{
@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{//?TODO?Auto-generated?method?stubToast.makeText(Main.this,?"我不喜歡他的電影。",?Toast.LENGTH_LONG).show();}}).setNeutralButton("通常",?new?OnClickListener()?{
@Overridepublic?void?onClick(DialogInterface?dialog,?int?which)?{//?TODO?Auto-generated?method?stubToast.makeText(Main.this,?"談不上喜歡不喜歡。",?Toast.LENGTH_LONG).show();}}).create();
dialog.show();
圖3效果:信息內容是一個簡單的View類型
new?AlertDialog.Builder(this).setTitle("請輸入").setIcon(android.R.drawable.ic_dialog_info).setView(new?EditText(this)).setPositiveButton("肯定",?null).setNegativeButton("取消",?null).show();
圖4效果:信息內容是一組單選框
new?AlertDialog.Builder(this).setTitle("復選框").setMultiChoiceItems(new?String[]?{?"Item1",?"Item2"?},?null,?null).setPositiveButton("肯定",?null).setNegativeButton("取消",?null).show();
圖5效果:信息內容是一組多選框
new?AlertDialog.Builder(this).setTitle("單選框").setIcon(android.R.drawable.ic_dialog_info).setSingleChoiceItems(new?String[]?{?"Item1",?"Item2"?},?0,new?DialogInterface.OnClickListener()?{public?void?onClick(DialogInterface?dialog,?int?which)?{dialog.dismiss();}}).setNegativeButton("取消",?null).show();
圖6效果:信息內容是一組簡單列表項
new?AlertDialog.Builder(this).setTitle("列表框").setItems(new?String[]?{?"Item1",?"Item2"?},?null).setNegativeButton("肯定",?null).show();
圖7效果:信息內容是一個自定義的布局
1.布局文件
2.調用代碼
LayoutInflater?inflater?=?getLayoutInflater();View?layout?=?inflater.inflate(R.layout.dialog,(ViewGroup)?findViewById(R.id.dialog));
new?AlertDialog.Builder(this).setTitle("自定義布局").setView(layout).setPositiveButton("肯定",?null).setNegativeButton("取消",?null).show();
總結
以上是生活随笔為你收集整理的android 对话框大全,Android 对话框(Dialog)大全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中如何引入π_python如
- 下一篇: 兔子,狼,老虎