警告对话框AlertDialog的使用

       AlertDialog跟WIN32开发中的Dialog不一样,AlertDialog是非阻塞的,而阻塞的对话框用的是PopupWindow。

       为了创建一个警告对话框,使用AlertDialog.Builder 子类。通过AlertDialog.Builder(Context)获取一个构造器Builder,然后使用这个Builder类的公共方法来定义警告对话框的所有属性。最后通过Builder.Create()来创建AlertDialog对象。

有时可以不调用Builder.Create(),而是在设置好警告对话框的所有属性后直接调用show()显示AlertDialog,如下所示:

     if (isExistNotUploadData() && !mApp.getNetWorkManager().isNetWorkCntedOrCnting()){
        	new AlertDialog.Builder(this)
			.setTitle(R.string.no_network)
			.setMessage(R.string.upload_poweron_prompt_connectnet)
			.setPositiveButton(R.string.pub_setting,//设置“确定”按钮
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialog,
								int whichButton) {
								}
					})
			.setNegativeButton(android.R.string.cancel,,//设置“取消”按钮
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialog,
								int whichButton) {
							dialog.cancel();
						}
					}).show();//直接调用Show()显示对话框
        }
    }

 

一.、 按钮式警告对话框

 通过setPositiveButton(...)响应Yes/Ok的点击,setNeutralButton(...)响应中立行为的点击,setNegativeButton(...)响应No/Cancel的点击。注意,只能各自设置一个按钮来响应点击事件。

         AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage("Are you sure you want to exit?")
				.setCancelable(false)//设置该对话框为不能使用返回按钮关闭这个对话框
				.setPositiveButton("Yes",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int id) {
							}
						})
				.setNegativeButton("No", new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int id) {
						dialog.cancel();
					}
				});
		AlertDialog alert = builder.create();//通过Builder.Create()来创建AlertDialog对象
		alert.show();///获取AlertDialog对象后,调用Show()显示

 

 

二、列表式警告对话框
调用setItems()添加一个可选项列表,该列表接受一组显示的items和一个DialogInterface.OnClickListener 来定义用户选中按钮后所采取动作。

final CharSequence[] items = { "Red", "Green", "Blue" };
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("Pick a color");
		builder.setItems(items, new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int item) {
				Toast.makeText(getApplicationContext(), items[item],
						Toast.LENGTH_SHORT).show();
			}
		});
		AlertDialog alert = builder.create();
		alert.show();();//获取AlertDialog对象后,调用Show()显示


 三、复选框或单选框式警告对话框

要在对话框里创建一个多选项列表(checkboxes)或者单选项(radio buttons),可分别调用setMultiChoiceItems()setSingleChoiceItems() 方法。

注意: 为了在用户离开或暂停这个活动的时候能够保存选择,你必须通过活动生命期Activity Lifecycle来恰当的保存和恢复设置。为了永久保存选项,即使活动进程被完全终止,你需要使用数据存储Data Storage技术。

final CharSequence[] items = { "Red", "Green", "Blue" };
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("Pick a color");
		builder.setSingleChoiceItems(items, 2,
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int item) {
						Toast.makeText(getApplicationContext(), items[item],
								Toast.LENGTH_SHORT).show();
					}
				});
		AlertDialog alert = builder.create();
		alert.show();

setSingleChoiceItems() 的第二个参数是一个checkedItem整型数值,指示了缺省选择项的位置,其值定义如下:

                -1:表示不选中任何项;

                 0:表示选中第一项;

                 1:表示选中第二项;

                 2:表示选中第三项;

                 如此类推。
 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值