Android之对话框Dialog

        今天继续Android学习之旅之对话框DIalog的记录,主要包括三个方面:1.普通提示弹框;2.退出弹框;3.弹框选择内容。

        1.普通弹框

        正常的弹框包括确认、取消两个操作,有的还有查看详情操作。弹框事件代码如下:

private class OnClickListenerDelete implements OnClickListener {

	@Override
	public void onClick(View v) {
		Dialog dialog = new AlertDialog.Builder(MainActivity.this)
				.setIcon(R.drawable.delimg)
				.setTitle("删除确认")
				.setMessage("确定要删除吗")
				.setPositiveButton("删除",
						new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								Toast.makeText(MainActivity.this, "已经删除成功",
										Toast.LENGTH_LONG).show();

							}
						})
				.setNeutralButton("查看详情",
						new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								Toast.makeText(MainActivity.this, "这是信息详情",
										Toast.LENGTH_LONG).show();

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

							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								Toast.makeText(MainActivity.this, "您已取消操作",
										Toast.LENGTH_LONG).show();

							}
						}).create();
		dialog.show();

	}
}
        注意:1.要想实例化Dialog类,需要依靠AlertDialog类的内部类AlertDialog.Builder实例化;2.三个按钮的设置分别不同,setPositiveButton表示确认按钮,setNegativeButton表示取消操作按钮,setNeutralButton表示普通的按钮。

        运行效果:

        2.退出弹框

        一般软件在退出时或者按返回键时都会弹框提示下是否退出,以防误操作。首先点击按钮退出的提示信息代码如下:

private class OnClickListenerExit implements OnClickListener {

	@Override
	public void onClick(View v) {
		MainActivity.this.exit();

	}
}

private void exit() {
	Dialog dialog = new AlertDialog.Builder(MainActivity.this)
			.setTitle("退出程序").setMessage("确定要退出程序吗?")
			.setIcon(R.drawable.warnimg)
			.setPositiveButton("确定", new DialogInterface.OnClickListener() {

				@Override
				public void onClick(DialogInterface dialog, int which) {
					MainActivity.this.finish();

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

				@Override
				public void onClick(DialogInterface dialog, int which) {
					Toast.makeText(MainActivity.this, "您已取消操作",
							Toast.LENGTH_LONG).show();

				}
			}).create();
	dialog.show();
}
        其中MainActivity.this.finish();表示退出程序,可以参考Android生命周期相关的知识。

        如何接收用户按返回键呢,只需要重写onKeyDown函数,代码如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
	if (keyCode == KeyEvent.KEYCODE_BACK) {
		this.exit();
	}
	return false;
}

        运行效果:


        3.弹框选择内容

        例如点击按钮选择默认城市,Dialog也提供了这样的功能,代码如下:

//城市数据
private String cityArray[] = new String[] { "江苏", "浙江", "上海" };
private class OnClickListenerSelectCity implements OnClickListener {

	@Override
	public void onClick(View v) {
		Dialog dialog = new AlertDialog.Builder(MainActivity.this)
				.setIcon(R.drawable.cityimg)
				.setTitle("选择城市")
				.setItems(cityArray, new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						String selectInfo = cityArray[which];
						Toast.makeText(MainActivity.this,
								"您选择的城市是:" + selectInfo, Toast.LENGTH_LONG)
								.show();

					}
				})
				.setPositiveButton("确定",
						new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								// TODO Auto-generated method stub

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

							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								// TODO Auto-generated method stub

							}
						}).create();
		dialog.show();

	}
}
         运行效果:

            

            项目源码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值