android中的对话框主要分为:一般对话框,单选对话框,多选对话框,进度条对话框,自定义对话框;
一般对话框:
简要代码分析如下:
AlertDialog.Builder builder = new Builder(Main.this);//此处必须用this,在弹出的对话框中必须用this,否则会报错。
this与getApplicationcontext()的区别:this直接继承context,而后者直接返回对象context;这样this是个子类共能很强大;
而后者是个父类。
03 builder.setMessage("确认退出吗?");
04 builder.setTitle("提示");
05 builder.setPositiveButton("确认", new OnClickListener() {
06 @Override
07 public void onClick(DialogInterface dialog, int which) {
08 dialog.dismiss();
09 Main.this.finish();
10 }
11 });
12 builder.setNegativeButton("取消", new OnClickListener() {
13 @Override
14 public void onClick(DialogInterface dialog, int which) {
15 dialog.dismiss();
16 }
17 });
18 builder.create().show();最后一定要show出来;
19 }
单选对话框:
简要代码分析如下:
1 new AlertDialog.Builder(this).setTitle("单选框").setIcon(
2 android.R.drawable.ic_dialog_info).setSingleChoiceItems(//单选对话框的重要方法
3 new String[] { "Item1", "Item2" }, 0,
4 new DialogInterface.OnClickListener() {
5 public void onClick(DialogInterface dialog, int which) {
6 dialog.dismiss();
7 }
8 }).setNegativeButton("取消", null).show();
多选对话框:
简要代码分析如下:
1new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(//多选对话框的方法
2 new String[] { "Item1", "Item2" }, null, null)//表示两个默认的没有被选中
3 .setPositiveButton("确定", null)
4 .setNegativeButton("取消", null).show();
进度条对话框:
在Android中有一类叫做ProgressDialog,允许创建进度条。为了做到这一点,需要实例化这个类的一个对象。其语法如下:
ProgressDialog progress = new ProgressDialog(this); //只要是表示进度的android中都允许在子线程中更新ui;
现在,可以设置此对话框的某些属性。比如,它的风格,文本等
progress.setMessage("Downloading Music :) ");
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progress.setIndeterminate(true);
Sr. NO | 标题与描述 |
---|---|
1 | getMax() 此方法返回进度的最大值 |
2 | incrementProgressBy(int diff) 此方法增加了进度条由值作为参数传递的区别 |
3 | setIndeterminate(boolean indeterminate) 此方法设置进度指示确定或不确定 |
4 | setMax(int max) 此方法设置进度对话框的最大值 |
5 | setProgress(int value) 此方法用于更新对话框进度某些特定的值 |
6 | show(Context context, CharSequence title, CharSequence message) 这是一个静态方法,用来显示进度对话框 |
自定义对话框:
在android项目中为了美化外观,不会直接使用系统对话框,因此会自定义自己样式的自定义对话框,而自定义对话框也是非常简单的,具体使用方法如下:
具体步骤如下:
首先在XML中将View视图显示出来,因为是自定义对话框,所以样式可以自己定义,相关介绍如下:
在这个自定义的AlertDialog对话框中,我们加入了两个TextView控件(用来显示“帐号:”和“密码:”)以及两个EditText控件(用来输入“帐号”和“密码”)
那么如何将这些控件加入到自定义的AlertDialog对话框中呢?首先,我们需要创建一个xml布局文件来加载这些控件。这里,我创建了一个名为“logindialog.xml”的布局文件。在该布局文件中完成对上述四个控件的布局即可。(省略就是写布局)
完成xml布局文件的编写之后,我们需要将该xml文件动态加载并转化为View对象,然后通过AlertDialog.Builder类的setView()方法将该View对象加载进来,就可以完成自定义AlertDialog对话框的创建了。具体的实现方法如下:
重点代码如下:
public LoginDialog (Context context) {
this.mContext = context;
//动态加载布局生成View对象
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
View longinDialogView = layoutInflater.inflate(R.layout.logindialog, null);
//获取布局中的控件
mUserName = (EditText)longinDialogView.findViewById(R.id.edit_username);
mPassword = (EditText)longinDialogView.findViewById(R.id.edit_password);
//创建一个AlertDialog对话框
longinDialog = new AlertDialog.Builder(mContext)
.setTitle("登录框")
.setView(longinDialogView) //加载自定义的对话框式样
.setPositiveButton("确定", this)
.setNeutralButton("取消", this)
.create();
longinDialog.show();
}
原文链接:http://www.apkbus.com/blog-846519-61900.html