android对话框和提示框

对话框之前已经掌握了普通对话框(AlertDialog)以及进度条对话框(ProgressDialog)。

除此以外,对话框还支持选择类对话框,包括单选,多选,下拉列表型选项这三种。

同时,对话框还提供了自定义对话框的功能,可以自己将一个已有的布局导入到对话框中显示。

还支持日期和时间选择类的对话框。

先来看选择类的对话框,还是使用AlertDialog,但不再设置Message,改为设置选项。

	// 弹出一个选择提示框
				Builder builder = new Builder(MainActivity.this);
				builder.setTitle("提示");
				builder.setItems(new String[] { "查看详情", "打开", "删除" },
						new OnClickListener() {
							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								switch (which) {
								case 0:
									Toast.makeText(MainActivity.this,
											"这里是查看详情", Toast.LENGTH_SHORT)
											.show();
									break;
								case 1:
									Toast.makeText(MainActivity.this, "这里可以编写打开文件的操作", Toast.LENGTH_SHORT).show();
									break;
								case 2:
									Toast.makeText(MainActivity.this, "加入删除的操作", Toast.LENGTH_SHORT).show();
									break;

								}
							}
						});
				builder.setPositiveButton("关闭", new OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {

					}
				});
				builder.create().show();

还可以使用单选或多选的形式来选择。

				builder.setSingleChoiceItems(
						new String[] { "查看详情", "打开", "删除" }, 0,
						new OnClickListener() {
							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								switch (which) {
								case 0:
									Toast.makeText(MainActivity.this,
											"这里是查看详情", Toast.LENGTH_SHORT)
											.show();
									break;
								case 1:
									Toast.makeText(MainActivity.this,
											"这里可以编写打开文件的操作", Toast.LENGTH_SHORT)
											.show();
									break;
								case 2:
									Toast.makeText(MainActivity.this,
											"加入删除的操作", Toast.LENGTH_SHORT)
											.show();
									break;
								}
							}
						});
多选
				builder.setMultiChoiceItems(
						new String[] { "查看详情", "打开", "删除" }, new boolean[] {
								false, true, true },
						new OnMultiChoiceClickListener() {
							@Override
							public void onClick(DialogInterface dialog,
									int which, boolean isChecked) {
								switch (which) {
								case 0:
									Toast.makeText(MainActivity.this,
											"这里是查看详情 --> " + isChecked, Toast.LENGTH_SHORT)
											.show();
									break;
								case 1:
									Toast.makeText(MainActivity.this,
											"这里可以编写打开文件的操作 --> " + isChecked, Toast.LENGTH_SHORT)
											.show();
									break;
								case 2:
									Toast.makeText(MainActivity.this,
											"加入删除的操作 --> " + isChecked, Toast.LENGTH_SHORT)
											.show();
									break;
								}
							}
						});

日期和时间的选择,这种选择需要通过单独的对话框类来完成。

				// 日期选择器, 注意,月份从0开始
				DatePickerDialog dialog = new DatePickerDialog(
						MainActivity.this, new OnDateSetListener() {
							@Override
							public void onDateSet(DatePicker view, int year,
									int monthOfYear, int dayOfMonth) {
								Toast.makeText(
										MainActivity.this,
										"设置的日期为: " + year + "-" + (monthOfYear + 1)
												+ "-" + dayOfMonth,
										Toast.LENGTH_LONG).show();

							}
						}, 2014, 3, 5);

				dialog.show();

				// 日期选择器, 注意,月份从0开始
				TimePickerDialog dialog = new TimePickerDialog(
						MainActivity.this, new OnTimeSetListener() {
							@Override
							public void onTimeSet(TimePicker view,
									int hourOfDay, int minute) {
								Toast.makeText(MainActivity.this,
										"选择的时间为: " + hourOfDay + ":" + minute,
										Toast.LENGTH_LONG).show();
							}
						}, 16, 20, true);
				dialog.show();

如果想自定义布局来设置到Toast或AlertDialog中,就需要通过LayoutInflater配合setView方法来完成。

Builder builder = new Builder(MainActivity.this);
				builder.setTitle("提示");
				builder.setView(LayoutInflater.from(MainActivity.this).inflate(
						R.layout.page_01, null));
				builder.setPositiveButton("关闭", new OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {

					}	
				});
				builder.create().show();

如果想改为Toast,只需要通过Toast.makeText建立出Toast对象,并调用setView后,再调用show()方法即可。

Toast t = Toast.makeText(MainActivity.this, null,
						Toast.LENGTH_LONG);

				t.setView(LayoutInflater.from(MainActivity.this).inflate(
						R.layout.page_01, null));
				
				t.show();


















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值