AlertDialog或自定义对话框

8
我正在开发一个Android 2.2应用程序。
我想显示一个带有“确定”按钮的文本,但我想添加自定义样式。
哪个选择更好,使用具有自定义布局的AlertDialog还是Dialog
2个回答

31

我会选择使用 AlertDialog

  • 它更容易实现。
  • 你只需要做的自定义部分就是一个XML布局,然后再将其填充。

AlertDialog dialog = new AlertDialog.Builder(this)
    .setView(getLayoutInflater().inflate(R.layout.custom_dialog, null))
    .create();
为了监听用户界面事件:
View view = getLayoutInflater().inflate(R.layout.custom_dialog, null);
Button btn = (Button)view.findViewById(R.id.the_id_of_the_button);
btn.setOnClickListener(blah blah);
AlertDialog dialog = new AlertDialog.Builder(this)
    .setView(view)
    .create();

您可以在Android对话框文档中查看:

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


谢谢您的回答。我还有一个问题:如果这个custom_dialog布局有一个按钮,我该如何添加OnClickListener? - VansFannel

0

AlertDialog是Dialog的轻量级版本。它仅用于处理一些通知性问题,这也是为什么与用户的复杂交互有所限制的原因。而Dialog能够处理更为复杂的事情。

那我什么时候应该使用AlertDialog呢?

-当我只想向用户提供某些信息时。

-当我们需要一个像“您是否要返回”(是、否、取消。Alert对话框默认提供了3个按钮,即积极、消极和中性)这样的提示框的时候。

-当我想要提示用户输入一个简单的值(数字/日期/字符串...)时。

enter image description here

何时使用对话框?

-当我想要使用更多的按钮和小部件来进行复杂的过程时。

-例如:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接