Android Dialog.................................................................................................................. 1
1. 7种形式的Android Dialog使用举例....................................................................... 1
1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。 2
2.改变了对话框的图表,添加了三个按钮............................................................ 3
3.信息内容是一个简单的View类型.................................................................... 4
4.信息内容是一组单选框.................................................................................... 5
5.信息内容是一组多选框.................................................................................... 6
6.信息内容是一组简单列表项............................................................................. 7
7.信息内容是一个自定义的布局.......................................................................... 8
8. 带progressBar的程序................................................................................ 10
2. 对话框的常用方法............................................................................................... 10
2.1 创建 AlertDialog 对话框的主要步骤有:.................................................... 11
2.2 它提供的方法主要有:............................................................................... 11
1. 7种形式的Android Dialog使用举例
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助。
1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。
创建dialog对话框方法代码如下:
protected void dialog() {
AlertDialog.Builder builder =new Builder(Main.this);
builder.setMessage("确认退出吗?");
builder.setTitle("提示");
builder.setPositiveButton("确认",newOnClickListener() {
@Override
public void onClick(DialogInterface dialog,intwhich) {
dialog.dismiss();
Main.this.finish();
}
});
builder.setNegativeButton("取消",newOnClickListener() {
@Override
publicvoidonClick(DialogInterface dialog,intwhich) {
dialog.dismiss();
}
});
builder.create().show();
}
在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法
public boolean onKeyDown(intkeyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() ==0) {
dialog();
}
return false;
}
2.改变了对话框的图表,添加了三个按钮
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setIcon(android.R.drawable.btn_star)
.setTitle("喜好调查")
.setMessage("你喜欢李连杰的电影吗")
.setPositiveButton("和喜欢", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this
, "我很喜欢他的电影"
, Toast.LENGTH_LONG).show();
System.out.println("positiveButton");
}
}).setNegativeButton("不喜欢", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this
, "我不是很喜欢他的电影"
, Toast.LENGTH_LONG).show();
System.out.println("negativeButton");
}
}).setNeutralButton("一般、", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this
, "一般电影"
, Toast.LENGTH_LONG).show();
System.out.println("neutralButton");
}
}).create().show();
创建dialog的方法代码如下:
3.信息内容是一个简单的View类型
创建dialog方法的代码如下:
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("请输入")
.setIcon(android.R.drawable.ic_dialog_info)
.setView(new EditText(MainActivity.this))
.setPositiveButton("确定", null)
.setNegativeButton("取消", null)
.create().show();
4.信息内容是一组单选框
创建dialog方法的代码如下:
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("singleChoice")
.setIcon(android.R.drawable.ic_dialog_info)
.setSingleChoiceItems(new String[]{ "item1","item2"}
, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
System.out.println("dialog.dismiss");
}}).setNegativeButton("cancel", null).show();
5.信息内容是一组多选框
创建dialog方法的代码如下:
|
6.信息内容是一组简单列表项
创建dialog的方法代码如下:
|
7.信息内容是一个自定义的布局
|
dialog布局文件代码如下:
创建dialog方法的代码如下:
|
|
好了,以上7种Android dialog对话框的使用方法就介绍到这里了,基本都全了,如果大家在android开发过程中遇到dialog的时候就可以拿出来看看。
另外注,本文参考文章:
http://android.tgbus.com/Android/tutorial/201107/359812.shtml
8.带progressBar的程序
ProgressDialog progressDialog = ProgressDialog.show(MainActivity.this
, "download"
, "downloading..."
, true);
progressDialog.setCancelable(true);
2. 对话框的常用方法
对话框是一种显示于 Activity 之上的界面元素,是作为 Activity 的一部分被创建和显示的,常用的对话框种类有:提示对话框 AlertDialog、进度对话框 ProgressDialog、日期选择对话框 DatePickerDialog、时间选择对话框 TimePickerDialog 等,其中 AlertDialog 是常用的对话框。当显示对话框时,当前 Activity 失去焦点而由对话框负责所有的交互。一般来说,对话框用于给出提示信息或弹出一个与主进程直接相关的子程序。
当对话框第一次被显示时,在程序中通过相应的回调方法 onCreateDialog()来完成对话
框实例的创建。该方法需要传入代表对话框的 ID 参数(之后不再重复创建该实例) 。如果需要显示对话框,则调用 showDialog()方法传入对话框的 ID 来显示指定的对话框。每次对话框被显示之前都会调用 onPrepareDialog()方法,因为如果不重写该方法,每次显示的对话框都是最初创建的那个。关闭对话框时可以调用 Dialog 类的 dismiss()方法来实现,但通过这种方法关闭的对话框并不会彻底消失,Android 会在后台保留其状态,因此可以为对话框设置 onDismissListener()并重写其中的 onDismiss()方法来开发相应的功能。如果需要让对话框在关闭之前彻底被清除,要调用 removeDialog()方法并传入 Dialog 的 ID 值来彻底释放对话框资源。
2.1 创建 AlertDialog 对话框的主要步骤有:
(1) 获得 AlertDialog 的静态内部类 Builder 对象,并由该类来创建对话框。
(2) 通过 Builder 对象设置对话框的标题、按钮以及按钮将要响应的事件。
(3) 调用 Builder 的 create()方法创建对话框。
(4) 调用 AlertDialog 的 show()方法显示对话框。
2.2 它提供的方法主要有:
l setTitle():设置对话框标题。
l setIcon():设置对话框图标。
l setMessage():设置对话框提示信息。
l setItems():设置对话框要显示的一个列表。
l setSingleChoiceItems():设置对话框显示一个单选的 List。
l setMultiChoiceItems():设置对话框显示一系列的复选框。
l setPositiveButton():给对话框添加 Yes 按钮。
l setNegativeButton():给对话框添加 No 按钮。
l setView():给对话框设置自定义样式。
l create():创建对话框。
l show()和 showDialog():显示对话框。
l onCreateDialog():创建对话框的实现。
l onPrepareDialog():更改已有对话框时调用。
l