当前位置: 代码迷 >> Android >> Android:AlertDialog.Builder创造常见对话框
  详细解决方案

Android:AlertDialog.Builder创造常见对话框

热度:60   发布时间:2016-05-01 15:08:52.0
Android:AlertDialog.Builder创建常见对话框

1.提示
先来说一下“提示”(提示几秒后就会消失),也许你只是想提示一下,不需要对方反馈,甚至不需要对方一定看见,也许你需要的是这个:

Toast.makeText(QueryCarInfoActivity.this, "上传数据成功", Toast.LENGTH_SHORT).show(); //从资源文件string.xml 里面取提示信息Toast.makeText(QueryCarInfoActivity.this, getString(R.string.hello), Toast.LENGTH_SHORT).show();

参数:
Toast.LENGTH_SHORT: Show the view or text notification for a short period of time
Toast.LENGTH_LONG: Show the view or text notification for a long period of time

2.使用new AlertDialog.Builder(context)创建一个对话框
(1)确定框
点击时,弹出一个消息框

	/**	 * 确定框	 */	private void dialogShowOK() {		new AlertDialog.Builder(this)		.setTitle("确定框")		.setMessage("简单消息框")		.setPositiveButton("确定", new DialogInterface.OnClickListener() {						public void onClick(DialogInterface dialog, int which) {				//按钮事件			}		})		.show();	}

(2)确定取消框
确定还是取消,it is a problem,当你做某项操作时,弹出一个提示,来确保操作无误。如删除文件时,提示“确认删除文件”;当按返回按钮时,提示“确认退出”等。

	/**	 * 确定取消框	 */	private void dialogShowOKCancel() {		new AlertDialog.Builder(this)		.setTitle("确定取消框")		.setIcon(R.drawable.down)		.setMessage("确定退出吗")		.setPositiveButton("确定", new DialogInterface.OnClickListener() {						public void onClick(DialogInterface dialog, int which) {				//确定按钮事件				setResult(RESULT_OK);//				dialog.dismiss();				finish();			}		})		.setNegativeButton("取消", new DialogInterface.OnClickListener() {						public void onClick(DialogInterface dialog, int which) {				//取消按钮事件//				dialog.dismiss();			}		})		.show();	}	/**	 * 按返回键提示是否退出	 */	@Override	public boolean onKeyDown(int keyCode, KeyEvent event) {		if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {			   dialogShowOKCancel();		}		return false;	}

(3)多按钮
改变了对话框的图表,添加了三个按钮

	/**	 * 多按钮	 */	private void dialogShowButton() {		new AlertDialog.Builder(this)		.setIcon(R.drawable.down)		.setTitle("文件")		.setMessage("请选择您的操作:")		.setPositiveButton("保存", new DialogInterface.OnClickListener() {						public void onClick(DialogInterface dialog, int which) {				// TODO Auto-generated method stub				Toast.makeText(TestDialogActivity.this, "保存文件", Toast.LENGTH_LONG).show();			}		})		.setNegativeButton("返回", new DialogInterface.OnClickListener() {						public void onClick(DialogInterface dialog, int which) {				// TODO Auto-generated method stub				Toast.makeText(TestDialogActivity.this, "返回继续编辑文件", Toast.LENGTH_LONG).show();			}		})		.setNeutralButton("清空", new DialogInterface.OnClickListener() {						public void onClick(DialogInterface dialog, int which) {				// TODO Auto-generated method stub				Toast.makeText(TestDialogActivity.this, "清空文件", Toast.LENGTH_LONG).show();			}		})		.show();		}

(4)输入框
通过setView()方法,为对话框传入了一个文本编辑框,当然,你可以传入任意视图对象,如图片框。

	/**	 * 输入框	 */	private void dialogShowInput() {		new AlertDialog.Builder(this)		.setTitle("请输入")		.setIcon(R.drawable.info)		.setView(new EditText(this))		.setPositiveButton("确定", null)		.setNegativeButton("取消", null)		.show();	}


上面的两个null参数,这里要放的其实是这两个按钮点击的监听程序,由于我们这里不需要监听这些动作,所以传入null值简单忽略掉,但是实际开发的时候一般都是需要传入监听器的,用来响应用户的操作。

(5)图片框

	/**	 * 图片框	 */	private void dialogShowImage() {		ImageView imgView = new ImageView(this);		imgView.setImageResource(R.drawable.image);		new AlertDialog.Builder(this)		.setTitle("图片框")		.setView(imgView)		.setPositiveButton("确定", null)		.show();	}

(6)单选框

	/**	 * 单选框	 */	private void dialogShowRadio() {		String[] s = new String[] {"选项1", "选项2", "选项3", "选项4"};		new AlertDialog.Builder(this)		.setTitle("单选框")		.setIcon(R.drawable.down)		.setSingleChoiceItems(s, 0, new DialogInterface.OnClickListener() {						public void onClick(DialogInterface dialog, int which) {				// TODO Auto-generated method stub				dialog.dismiss();			}		})		.setNegativeButton("取消", null)		.show();	}

(7)多选框

	/**	 * 多选框	 */	private void dialogShowCheck() {		String[] s = new String[] {"选项1", "选项2", "选项3", "选项4"};		new AlertDialog.Builder(this)		.setTitle("多选框")		.setIcon(R.drawable.down)		.setMultiChoiceItems(s, null, null)		.setPositiveButton("确定", null)		.setNegativeButton("取消", null)		.show();	}

(8)列表框

	/**	 * 列表框	 */	private void dialogShowList() {		String[] s = new String[] {"列表1", "列表2", "列表3"};		new AlertDialog.Builder(this)		.setTitle("列表框")		.setIcon(R.drawable.down)		.setItems(s, null)		.setPositiveButton("确定", null)		.show();	}

1楼lfmilaoshi昨天 22:27
一看就是在凑合博客。。。米老师
  相关解决方案