AlertDialog


由于AlertDialog类的构造方法被声明成protected方法,因此,不能直接使用new关键字来创建AlertDialog类的对象实例。为了创建AlertDialog对象,需要使用Builder类,该类是在AlertDialog类中定义的一个内嵌类,首先必须创建AlertDialog.Builder类的对象实例,然后通过AlertDialog.Builder类的show方法显示对话框。


AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。

要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法。

使用AlertDialog.Builder创建对话框需要了解以下几个方法:

setTitle :为对话框设置标题

setIcon :为对话框设置图标

setMessage:为对话框设置内容

setView : 给对话框设置自定义样式

setItems :设置对话框要显示的一个list,一般用于显示几个命令时

setMultiChoiceItems :用来设置对话框显示一系列的复选框

setNeutralButton :普通按钮

setPositiveButton :给对话框添加"Yes"按钮

setNegativeButton :对话框添加"No"按钮

create : 创建对话框

show :显示对话框



[color=red][b]代码:[/b][/color]

AlertDialog dialog = newAlertDialog.Builder(MainActivity.this).setIcon(null).setTitle("dialog").setMessage("nihao").setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int arg1) {

MainActivity.this.finish();

}

// 如果都使用setPositiveButton()方法,则只显示一个(后面的那个),前面的被覆盖

}).setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int arg1) {

}

}).create();

//显示对话框也可以使用showDialog(int id)方法显示对话框

dialog.show();

注意:

1、 setPositiveButton()和setNegativeButton()方法中的第二个参数的数据类型是android.content.DialogInterface.OnclickListener,而不是View中的OnClickListener。

2、 使用show方法显示对话框是异步的。也就是说,当调用AlertDialog。Builder.show或AlertDialog.show方法显示对话框后,show方法会立即返回,并且继续执行后面的代码。

/**三个按钮(覆盖,忽略,取消)对话框的创建*/

new AlertDialog.Builder(this).setTitle()

.setPositiveButton()

.setNeutralButton(…, …)

.setNegativeButton().show()

注意:

1、 setPositiveButton(),setNeutralButton(),setNegativeButton()的调用顺序可以是任意的,但无论调用顺序是什么,setPositiveButton()方法设置的按钮总会排在左起第1位,setNeutralButton()方法设置的按钮总会排在左起第2位,setNegativeButton()方法设置的按钮总会排在左起第3位。

2、 使用AlertDialog类创建的对话框最多只能有3个按钮。

3、 这3个按钮的方法虽然可以被调用多次,但系统只以每一个方法最后一次调用为准。(前面的会自动被覆盖)



简单列表对话框

final String[] str=new String[] { "你好1", "你好2", "你好3" };

AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).setItems(str,new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0,int which) {

/**使用which返回你所点击的内容*/

final AlertDialog ad=new AlertDialog.Builder(MainActivity.this).setMessage("您选择了: "+which+str[which]).show();

Handler handler=new Handler();

handler.postDelayed(new Runnable() {

@Override

public void run() {

/**ad变量要使用final关键字定义,因为在隐式实现Runnable接口的run方法中需要访问final变量*/

/**调用AlertDialog类的dismiss方法关闭对话框,也可以调用cancel方法*/

ad.dismiss();

}

},5000);

}

}).create();

dialog.show();

在DialogInfterface接口中,有两个用于关闭对话框的方法:dismiss和cancel。这两个方法的功能完全相同,都是关闭框。所不同的是,cancel方法除了关闭对话框外,还会调用DialogInterface.onCancleListener接口中的onCancel方法。DialogInterface.onCancelListener对象需要使用AlertDialog.Builder类中的setOnCancelListener方法进行设置。dismiss方法和cancel方法类似,会调用DialogInterface.onDismissListener接口中的onDismiss方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值