API

常用方法

方法定义 方法说明
setIcon(int iconId) 设置对话框的图标
setCancelable(boolean cancelable) 设置对话框是否可取消
setTitle(CharSequence title) 设置对话框的标题
setMessage(CharSequence message) 设置对话框主体内容
setAdapter(ListAdapter adapter, OnClickListener listener) 设置一个adapter
setSingleChoiceItems() 设置单选
setMultiChoiceItems() 设置多选

AlertDialog 创建

  1. final AlertDialog.Builder builder = new AlertDialog.Builder(_mActivity);
  2. builder.setCancelable(true);
  3. final AlertDialog alert = builder.create();
  4. alert.show();

设置宽满屏

  1. Window dialogWindow = alert.getWindow();
  2. WindowManager.LayoutParams p = dialogWindow.getAttributes();
  3. p.width = WindowManager.LayoutParams.MATCH_PARENT;
  4. dialogWindow.setAttributes(p);

AlertDialog设置宽满屏时显示却有margin属性

  1. alert.getWindow().setBackgroundDrawable(null);

设置居中

  1. alert.getWindow().setGravity(Gravity.CENTER);

Alterdialog点击空白处不消失的方法

  1. alert.setCanceledOnTouchOutside(false);

示例

默认普通对话框

  1. AlertDialog dialog = new AlertDialog
  2. .Builder(this)
  3. .setTitle("普通对话框")
  4. .setIcon(R.mipmap.ic_launcher)
  5. .setNegativeButton("取消", null)
  6. .setPositiveButton("确定", new DialogInterface.OnClickListener() {
  7. @Override
  8. public void onClick(DialogInterface dialog, int which) {
  9. Toast.makeText(getApplicationContext(), "确定", Toast.LENGTH_SHORT).show();
  10. }
  11. }).setNeutralButton("默认", null)
  12. .setMessage("确认删除?").create();
  13. dialog.show();

显示Item对话框

  1. final CharSequence[] items = {"北京", "上海", "广州"};
  2. AlertDialog dialog = new AlertDialog
  3. .Builder(this)
  4. .setTitle("显示Item对话框")
  5. .setItems(items, new DialogInterface.OnClickListener() {
  6. @Override
  7. public void onClick(DialogInterface dialog, int which) {
  8. Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show();
  9. }
  10. }).create();
  11. dialog.show();

单选列表对话框 setSingleChoiceItems

  1. final CharSequence[] items = { "北京", "上海", "广州" };
  2. AlertDialog.Builder builder = new AlertDialog.Builder(this);
  3. builder.setTitle("请选择以下城市");
  4. builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
  5. @Override
  6. public void onClick(DialogInterface dialog, int which) {
  7. CharSequence sequence = items[which];
  8. Toast.makeText(getApplicationContext(), "select " + sequence, Toast.LENGTH_SHORT).show();
  9. }
  10. });
  11. AlertDialog dialog = builder.create();
  12. dialog.show();

多选对话框setMultiChoiceItems

final CharSequence[] items = {"北京", "上海", "广州"};
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("多选对话框").setIcon(android.R.drawable.sym_def_app_icon)
    .setNegativeButton("取消", null).setPositiveButton("确定", null)
    .setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
            Toast.makeText(getApplicationContext(), "select " + items[which], Toast.LENGTH_SHORT).show();
        }
    }).create();
dialog.show();

自定义Adapter

final String[] items = {"北京", "上海", "广州"};
ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("自定义Adapter").setIcon(android.R.drawable.sym_def_app_icon)
    .setAdapter(adapter, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(getApplicationContext(), "select " + items[which], Toast.LENGTH_SHORT).show();
        }
    }).create();
dialog.show();

自定义View

String name = "自定义View";
        View view = LayoutInflater.from(this).inflate(android.R.layout.simple_list_item_1, null);
        ((TextView)view.findViewById(android.R.id.text1)).setText(name);
        AlertDialog dialog = new AlertDialog
                .Builder(this)
                .setTitle(name)
                .setIcon(android.R.drawable.sym_def_app_icon)
                .setView(view)
                .create();
        dialog.show();