Android弹出对话框的使用

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢? 
    幸运的是,android提供了这种问题的解决方案,刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了android起始已经提供了相应的接口Dialog Builder ,不需要再去写xml布局:

只需要一个上下文对象,我们就可以很快创建对话框:

最简单的,只设置了标题:

new AlertDialog.Builder(this)
.setTitle("Hello MessageBox!")
.show();

 
Android弹出对话框的使用
 

设置内容,按钮

new AlertDialog.Builder(this)
.setTitle("Hello MessageBox!")
.setPositiveButton("确定", null)
.setMessage("对话框内容")
.show();

 
Android弹出对话框的使用
 

设置两个按钮:

new AlertDialog.Builder(this)
.setTitle("Hello MessageBox!")
.setPositiveButton("确定", null)
.setNegativeButton("取消",null )
.setMessage("对话框内容")
.show();

 
Android弹出对话框的使用
 当然,按钮的事件需要响应的话,第二个参数就不为null,需要添加响应的代码:

new AlertDialog.Builder(this)
.setTitle("Hello MessageBox!")
.setPositiveButton("确定", new OnClickListener() {	
	@Override
	public void onClick(DialogInterface dialog, int which) {
		Toast.makeText(MainActivity.this, "确定按钮按下", Toast.LENGTH_SHORT).show();
	}
})
.setNegativeButton("取消",null )
.setMessage("对话框内容")
.show();

 这样就可以响应按钮事件了。

还有很多可以设置的属性:

new AlertDialog.Builder(this)
.setTitle("Hello MessageBox!")
.setPositiveButton("确定", null)
.setMessage("对话框内容")
.setView(new EditText(MainActivity.this))
.setIcon(R.drawable.ic_launcher)  //设置icon
.show();

 
Android弹出对话框的使用
 单选框:

new AlertDialog.Builder(this)
.setTitle("Hello MessageBox!")
.setPositiveButton("确定", null)
.setSingleChoiceItems(new String[]{"选项1","选项2","选项3","选项4"}, 2, null)
.setIcon(R.drawable.ic_launcher)  //设置icon
.show();

 
Android弹出对话框的使用
 复选框:

new AlertDialog.Builder(this)
.setTitle("Hello MessageBox!")
.setPositiveButton("确定", null)
.setMultiChoiceItems(new String[]{"选项1","选项2","选项3","选项4"}, new boolean[]{true,false,true,false}, null)
.setIcon(R.drawable.ic_launcher)  //设置icon
.show();

 
Android弹出对话框的使用
 列表框:

new AlertDialog.Builder(this)
.setTitle("Hello MessageBox!")
.setPositiveButton("确定", null)
.setItems(new String[]{"选项1","选项2","选项3","选项4"}, null)
.setIcon(R.drawable.ic_launcher)  //设置icon
.show();

 
Android弹出对话框的使用
 

相关推荐