使用AlertDialog类创建对话框

1、AlertDialog类的创建

public AlertDialog create()

      public AlertDialog show()

  create()和show()方法都返回了AlertDialog对象,它们的区别是create()方法虽然返回了AlertDialog对象,但并不显示对话框;而show()方法在返回AlertDialog对象之前会立即显示对话框。

分步显示对话框:

//由于AlertDialog类的构造放大被声明成protected方法,因此不能直接使用new 关键字来创建AlertDialog类的对象实例。需要使用AlertDialog中定义的一个内嵌类,即Builder类

AlertDialog ad=new AlertDialog.Builder(this).setTitle("title").create();

ad.setMesssage("信息");

ad.show();

一次性显示对话框:

AlertDialog ad=new AlertDialog.Builder(this).setTitle("title").setMessage("信息").show();

2、其中确认和取消对话框按钮

//确认按钮

public Builder setPositiveButton (CharSequence text,fnal onClickListener listener)

public Builder setPositiveButton(int textId,final OnClickListener listener)

//取消按钮

public Builder setNegativeButton (CharSequence text,fnal onClickListener listener)

public Builder 

setNegativeButton 

(int textId,final OnClickListener listener)

以上第一个参数可以使用字符串资源ID或字符串值以及字符串变量来设置这个参数,尽量使用资源ID的方式来指定参数值,方便修改文字

第二个参数表示单击按钮触发的事件,该类型是DialogInterface.OnClickListener,需要传入DialogInterface.OnClickListener接口的对象。

综上,创建含确认和取消按钮对话框的方式是:

new AlertDialog.Builder(this).setTitle("对话框的标题").setPositiveButton("按钮的提示","事件").setNegativeButton("按钮的提示","事件").show();

3、创建“询问”是否删除文件的【确认/取消】对话框

new AlertDialog.Builder(this).setIcon(R.drawable.question).setTitle("是否删除文件").setPositiveButton("确认",

//创建DialogInterface.OnClickListener对象实例,当单击按钮时调用onClick方法                 

                new DialogInteface.OnClickListener)(){

                           public void onClick(DialogInterface dialog,int whichButton){

                                    //单击确定按钮后,显示一个无按钮的对话框

                                      new AlertDialog.Builder(Main.this).setMessage(

                                       "文件已经被删除.").create().show();

                                   }).show();

}

setPositiveButton的第二个参数的数据类型是DialogInterface.OnClickListener,而不是View.OnClickListener。

4、带三个按钮的对话框

  new AlertDialog.Builder(this)setTitle("title")

    .setPositiveButton(.......)

   .setNeutraButton(.......)

   .setNegativeButtton(........).show();

1)上面三个的调用顺序可以是任意的,但是实际上方法设置后的按钮的顺序是固定不变的;

2)使用AlertDialog类创建的对话框最多只能有3个按钮,因此就算多次调用这3个设置对话框按钮的方法,最多也只能显示3个扭。

3)这三个设置对话框按钮的方法虽然都可以调用多次,但系统只以每个方法的最后一次调用为准。

    例如,new AlertDialog.Builder(this).setPositiveButton("确定1",...).setPositiveButton("确定2",...)

    虽然调用了两次setPositiveButton方法,但系统只以最后一次调用为准,也就是说只会为对话框添加一个【确认2】按钮,

    而不会将【确认1】和【确认2】按钮都加到对话框上。

5、自定义对话框

            直接使用XML布局文件或代码创建视图对象,并将这些视图对象添加到对话框中

   AlertDialog.Builder类的 setView方法可以将视图对象添加到当前的对话框中

            new AlertDialog.Builder(this)

                  .setIcon(R.drawable.alert_dialog_icon).setTitle("自定义对话框")

                  .setView(......)

                  .show();


LinearLayout loginLayout=(LinearLayout)getLayoutInflater().inflate(R.Layout.login,null);

                       new AlertDialog.Builder(this).setIcon(R.drawable.login)

                                                     .setTitle("用户").setView(loginLayout)

                                                    .setPositiveButton("登录",new DialogInterface.OnClickListener()){

                                          }...........

                    ).show();

6、用Activity托管对话框

                  当调用Activity类的showDialog方法时,系统会调用onCreateDialog方法来返回一个Dialog对象

      (AlertDialog是Dialog类的子类)。showDialog方法和onCreateDialog方法一样,也有一个int 类型的

      id 参数。该参数值将传入onCreateDialog方法。可以利用不同的id来建立多个对话框


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值