继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

android中的对话框(两种上下文的区别)介绍

开满天机
关注TA
已关注
手记 94
粉丝 74
获赞 262

android中的对话框主要分为:一般对话框,单选对话框,多选对话框,进度条对话框,自定义对话框;

一般对话框:

5baf1e430001bdb502990177.jpg


spacer.gif

 

简要代码分析如下:

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   }




单选对话框:

5baf1e4300015fa503370264.jpg



spacer.gif

 

简要代码分析如下:

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();






多选对话框:

5baf1e440001b0e803350267.jpg


spacer.gif

 简要代码分析如下:

1new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(//多选对话框的方法

2   new String[] { "Item1", "Item2" }, null, null)//表示两个默认的没有被选中

3   .setPositiveButton("确定", null)

4   .setNegativeButton("取消", null).show();




进度条对话框:

5baf1e440001165203140134.jpg


spacer.gif

 在Android中有一类叫做ProgressDialog,允许创建进度条。为了做到这一点,需要实例化这个类的一个对象。其语法如下:

ProgressDialog progress = new ProgressDialog(this); //只要是表示进度的android中都允许在子线程中更新ui;


现在,可以设置此对话框的某些属性。比如,它的风格,文本等

progress.setMessage("Downloading Music :) "); 

progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 

progress.setIndeterminate(true); 

Sr. NO标题与描述
1getMax()
此方法返回进度的最大值
2incrementProgressBy(int diff)
此方法增加了进度条由值作为参数传递的区别
3setIndeterminate(boolean indeterminate)
此方法设置进度指示确定或不确定
4setMax(int max)
此方法设置进度对话框的最大值
5setProgress(int value)
此方法用于更新对话框进度某些特定的值
6show(Context context, CharSequence title, CharSequence message)
这是一个静态方法,用来显示进度对话框


自定义对话框:

5baf1e440001b4a302570260.jpg



在android项目中为了美化外观,不会直接使用系统对话框,因此会自定义自己样式的自定义对话框,而自定义对话框也是非常简单的,具体使用方法如下:


spacer.gif

 

 具体步骤如下:

首先在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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP