AlertDialog继承与Dialog类,它只提供了protected类型的构造函数,所以不能直接创建它的对象,需要通过它的内部类Builder来获取它的实例对象。
AlertDialog用于快速构建对话框,它提供了很多用于构建对话框的方法,当然,我们也可以自己写一个Dialog的子类来实现对话框,但是这样也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,显得有些繁琐,所以android提供了这个AlertDialog,我们可以只用少许的几行代码就可以构建一个对话框。
普通消息框:
new AlertDialog.Builder(MainActivity.this) .setTitle("消息框") .setIcon(R.drawable.ic_launcher) .setMessage("显示内容") .setPositiveButton("确定", null) .show();效果如下:
确定框:
new AlertDialog.Builder(MainActivity.this) .setTitle("确定框") .setIcon(R.drawable.ic_launcher) .setMessage("确定吗?") .setPositiveButton("确定", null) .setNegativeButton("取消", null) //设置只能通过点击取消按钮关闭对话框 .setCancelable(true) //监听对话框的取消,当对话框非正常消失时调用(点击对话框外部,back建) .setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { // TODO Auto-generated method stub } }) //监听对话框的取消,当对话框消失时调用(任何形式的消失都调用) .setOnDismissListener(new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { // TODO Auto-generated method stub } }) .show();
输入框:
EditText meditText = new EditText(MainActivity.this); new AlertDialog.Builder(MainActivity.this) .setTitle("输入框") .setIcon(R.drawable.ic_launcher) .setMessage("显示内容") .setView(meditText) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show();效果如下:
复选框:
//复选框 注:单选框和复选框中不能有setMessage(),否则不能正常显示 //setMultiChoiceItems可以决定哪个被选中 CharSequence[] items = {"小苹果","雪梨","香蕉"}; new AlertDialog.Builder(MainActivity.this) .setTitle("复选框") .setIcon(R.drawable.ic_launcher) //.setMessage("显示内容") .setMultiChoiceItems(items, new boolean[]{false,true,true}, null) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show();
单选框:
//单选框 注:单选框和复选框中不能有setMessage(),否则不能正常显示 // setSingleChoiceItems可以决定哪个被选中 CharSequence[] items = {"小苹果","雪梨","香蕉"}; new AlertDialog.Builder(MainActivity.this) .setTitle("单选框") .setIcon(R.drawable.ic_launcher) //.setMessage("显示内容") .setSingleChoiceItems(items, 1, null) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show();
图片框:
ImageView view = new ImageView(MainActivity.this); view.setImageResource(R.drawable.ic_launcher); new AlertDialog.Builder(MainActivity.this) .setTitle("图片框") .setIcon(R.drawable.ic_launcher) .setMessage("显示内容") .setView(view) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show();效果如下:
列表框:
CharSequence[] items = {"苹果","雪梨","香蕉"}; new AlertDialog.Builder(MainActivity.this) .setTitle("列表框") .setIcon(R.drawable.ic_launcher) // .setMessage("显示内容") // .setItems(items, null) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .setAdapter(new MyAdapter(new String[]{"列表1","列表2","列表3"},MainActivity.this), null) .show();