##6.1 问题
需要向用户显示一个简单的弹出式对话框来进行事件通知或展示一个选项列表。
##6.2 解决方案
(API Level 1)
在向用户快速展示重要模态信息的场景中,AlertDialog是最高效的解决方案。它展示的内容可以很轻松地进行自定义,同时框架还提供一个方便的AlertDialog.Builder类来快速构建弹出式对话框。
##6.3 实现机制
通过使用AlertDialog.Builder,可以构建类似的报警对话框,但包含不同的额外选项。AlertDialog在创建简单的弹出式对话框来获得用户反馈时是一个非常有用的类。通过AlertDialog.Builder,可以很容易在一个简洁的小部件中添加单选或多选列表、按钮和消息字符串。
为了说明这一点,让我们用AlertDialog创建一个和以前一样的弹出式选择框。这一次,我们将在选项列表的底增加Cancel按钮(参见以下代码)。
使用了AlertDialog的动作菜单
public class DialogActivity extends Activity
implements DialogInterface.OnClickListener, View.OnClickListener {
private static final String[] ZONES =
{"Pacific Time", "Mountain Time", "Central Time", "Eastern Time", "Atlantic Time"};
Button mButton;
AlertDialog mActions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mButton = new Button(this);
mButton.setText("Click for Time Zones");
mButton.setOnClickListener(this);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Time Zone");
builder.setItems(ZONES, this);
//这里的取消动作只会让对话框消失,但在用户单击Cancel按钮时