标签:
dialog一般是出现在Activity之上的一个小窗口,一般用于提示信息和与当前应用程序直接相关的小功能
进度对话框ProgressDialog:显示一个劲度环或者一个进度条,支持按钮
警告对话框AlertDialog:可以创建大多数的交互界面
日期选择对话框DatapickerDialog:让用户选择一个日期
时间选择对话框TimePickerDialog:让用户选择一个时间
1.实例化dialog
由于AlertDialog到的构造函数的关系,不能直接实例化,需要利用Builder类似实例化,如
AlertDialog ad=new AlertDialog.Builder(Main.this).create();
2.设置对话框
设置除了指基本的设置如title,message,icon外,还可设置对话框的按钮,单选框,列表,复选框等
2.1
实现上图的窗口,用set....Button()
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int id){
MyActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int id){
dialog.cancel();
}
});
首先,使用setMessage(CharSequence)为对话框增加一条消息。 然后, 开始连续调用方法, 使用setCancelable(boolean)将对话框设为不可取消(不能使用back键来取消)。对每一个按钮,使用set...Button()方法,该方法接受按钮名称和一个DialogInterface.OnClickListener,该监听器定义了当用户选择该按钮时应做的动作。
注意:对每种按钮类型,只能为AlertDialog创建一个。也就是说,一个AlertDialog不能有两个以上的"positive"按钮。这使得可能的按钮数量最多为三个:肯定、否定、中性。这些名字和实际功能没有联系,但是将帮助你记忆它们各做什么事情。
2.2添加一个列表
要创建一个具有可选项的AlertDialog,使用setItems()方法final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
首先增加一个标题。然后使用setItems()增加一个可选列表,该列表接受一个选项名称的列表和一个DialogInterface.OnClickListener, 后者定义了选项对应的响应。
2.3 添加单选和复选框
要创建一个带有多选列表或者单选列表的对话框, 使用setMultiChoiceItems()和setSingleChoiceItems()方法。如果你在onCreateDialog()中创建可选择列表, Android会自动管理列表的状态. 只要activity仍然活跃, 那么对话框就会记住刚才选中的选项,但当用户退出activity时,该选择丢失。
注意: 要在你的acitivity离开和暂停时保存选择, 你必须在activity的声明周期中正确的保存和恢复设置。为了永久性保存选择,你必须使用数据存储技术中的一种。
要创建一个具有单选列表的AlertDialog,只需将一个例子中的setItems()换成 setSingleChoiceItems():
final CharSequence[] items = {"Red", "Green", "Blue"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Pick a color");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
3.show
显示对话框
4.消除对话框
dismissDialog(int id)会保留这个对象
removeDialog(int id)会删除这个对象和清除状态
标签:
原文地址:http://www.cnblogs.com/chhom/p/4765488.html