对话框 Dialog

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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值