android对话框和差异

时间:2016-12-18 04:01:48

标签: android

这可能是个老问题。但我仍然找不到满意的答案。 AlertDialog,AlertDialog.builder,Android中的Dialog有什么区别。我应该使用哪一个?

2 个答案:

答案 0 :(得分:0)

引用this

Dialog 类是对话框的基类,但您应该避免直接实例化Dialog。而是使用以下子类之一:

  • AlertDialog
  • DatePickerDialog或TimePickerDialog

AlertDialog 可让您在活动/片段上方显示一个对话框。它通常用于提示用户进行交互,包括几个按钮或通知某事。 Dialog 类是此类的超类。

AlertDialog.Builder AlertDialog 内部静态类,它允许您使用方便的方法快速设置对话框

  • AlertDialog.Builder(Context context) - > 为使用默认警报对话框主题的警报对话框创建构建器。 默认警报对话框主题由父上下文主题中的alertDialogTheme定义。

  • AlertDialog.Builder(Context context, int themeResId) - >为使用显式主题资源的警报对话框创建构建器。 指定的主题资源(themeResId)应用于 top 父上下文的主题。它可以被指定为包含完全填充主题的样式资源,例如Theme_Material_Dialog,以替换父上下文主题中的所有属性,包括主色和强调色。 要保留主色和强调色等属性,可以将themeResId指定为叠加主题,例如ThemeOverlay_Material_Dialog。这将仅覆盖将警报窗口设置为对话框所需的窗口属性。

注意

AlertDialog 类允许您构建各种对话框设计,并且经常是您需要的唯一对话框类。警报对话框标题,内容区域和操作按钮有三个区域。

AlertDialog.Builder 类提供的API允许您使用上述类型的内容创建 AlertDialog ,包括自定义布局。

用这个例子理解概念

// 1. Instantiate an AlertDialog.Builder with its constructor
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

// 2. Chain together various setter methods to set the dialog requirements
builder.setMessage(R.string.dialog_message)
       .setTitle(R.string.dialog_title);

// 3. Get the AlertDialog from create()
AlertDialog dialog = builder.create();

Dialog AlertDialog 子类)的超类, AlertDialog.Builder AlertDialog

的内部静态类

答案 1 :(得分:0)

阅读android官方Dialogs指南。