1.对话框通常是一个小窗口,它出现在当前的Activity上面。此时,对话框得到所有用户交互,其下方的Activity将失去焦点。
2.Dialog类是创建所有对话框的基类。然而,在实际创建对话框的过程中,应该使用它下列的子类:
AlertDialog:可以包含一个或多个按钮,选项等的对话框。建议使用;
ProgressDialog:是
的一个拓展。可以显示进度圈或者进度条;AlertDialog
DatePickerDialog:可以选择日期的对话框;
TimePickerDialog
:可以选择时间的对话框;- 其他自定义的对话框:继承Dialog或者上述类并定义新的布局文件;
3. 当想要显示一个对话框的时候,调用showDialog(int)并传入一个代表对话框编号的整数。当要求的对话框第一次显示时,系统会调用onCreateDialog(int)来实例化对话框,传入的整数和上边的showDialog(int)一样。如:下列代码定义了两种对话框,“暂停”和“游戏结束”:
1)先定义代表对话框序号的整数:
static final int DIALOG_PAUSED_ID = 0; static final int DIALOG_GAMEOVER_ID = 1;
2)在用switch-case语句来定义onCreateDialog(int)方法:
protected Dialog onCreateDialog(intid) { Dialog dialog; switch(id) { case DIALOG_PAUSED_ID: // do the work to define the pauseDialog break; case DIALOG_GAMEOVER_ID: // do the work to define the game overDialog break; default: dialog = null; } return dialog; }
3)最后调用showDialog(int)来显示对话框:
showDialog(DIALOG_PAUSED_ID);
4.解除一个对话框:
对Dialog实例调用dismiss()来关闭对话框。
使用dismiss监听器:当需要在dialog被关闭时进行一些操作,则需要设置on-dismiss监听器:
先定义DialogInterface.OnDismissListener接口,该接口只含有一个方法-onDismiss(DialogInterface),它会在对话框关闭时调用,然后用setOnDismissListener()绑定监听器。
5.创建一个AlertDialog:
AlertDialog类是Dialog类的一个子类,能构造大多数的用户界面。在AlertDialog可以使用以下功能:
1一个标题;
2一段文字消息;
3一个或多个按钮;
4一列单选或多选框;
创建方法如下:
return new AlertDialog.Builder(this) .setIcon(R.drawable.ic_launcher) .setTitle("This is a dialog" ) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Toast.makeText(getBaseContext(), "OK clicked!" , Toast.LENGTH_SHORT).show(); } } ) .setNegativeButton("Cancel" , new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Toast.makeText(getBaseContext(), "Cancelclicked!", Toast. LENGTH_SHORT).show(); } } ) .setMultiChoiceItems( items, itemsChecked, new DialogInterface.OnMultiChoiceClickListener(){ public void onClick(DialogInterface dialog, int which, boolean isChecked) { Toast.makeText(getBaseContext(), items[which] +(isChecked ? "checked!":" unchecked!" ), Toast.LENGTH_SHORT).show(); } } ).create();
4.创建进度对话框:
进度条对话框可以为未定义进度的任务创建一个纺纱轮式的进度圈,或者为一个已定义进度的任务创建一个进度条。还可以提供按钮,比如取消一个下载任务。
打开进度对话框十分简单,只需调用ProgressDialog.show()方法即可。无需使用onCreateDialog(int)。如:
ProgressDialog dialog = ProgressDialog.show(MyActivity.this,"", "Loading. Pleasewait...", true);
其中,第一个参数是应用Context,第二个是对话框的标题,第三个是一段消息。最后一个是改进度对话框是否是隐式的。
创建进度条对话框:
1) 用ProgressDiglog(Context)方法初始化进度对话框;
2) 用setProgressStyle(int)方法设置风格;
3) 调用show()来显示
4) 可以用setProgress(int)或者incrementProgressBy(int)来设置进度;
如:
ProgressDialogprogressDialog; progressDialog = newProgressDialog(mContext); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setMessage("Loading..."); progressDialog.setCancelable(false);