一起学Android之Dialog

一起学Android之Dialog,第1张

概述对话框(Dialog)是一个在Android系统开发中经常会用到的小窗口,它提示用户做决定或者输入一些东西,对话框并不填充屏幕,是一个模态(Modal)窗口。Dialog类是所有对话框的基类,应避免直 概述

对话框(Dialog)是一个小窗口,在AndroID系统开发中经常会用到,它提示用户做决定或者输入一些东西,对话框并不填充屏幕,是一个模态(Modal)窗口。Dialog类是所有对话框的基类,应避免直接实例化对话框,通常使用它的子类(AlertDialog,DatePickerDialog or TimePickerDialog),本文主要讲解的是AlertDialog。

什么是AlertDialog?

可以显示标题、最多三个按钮、可供选择的项目列表或自定义布局的对话框。

创建步骤构建一个Builder(AlertDialog.Builder)。设置对话框标题(setTitle),内容信息(setMessage)。设置对话框显示的按钮,最多三个按钮(setPositivebutton,setNegativebutton)。调用方法,创建对话框对象(create)。显示对话框(show)。涉及知识点AlertDialog.Builder 对话框构造器,可以进行对话框进行设置,并创建对话框对象。setTitle 设置对话框标题,setMessage设置对话框显示的文本内容setNegativebutton 设置对话框显示的否定按钮(Cancel), setPositivebutton设置对话框显示的肯定按钮(OK)show() 显示对话框setItems 设置对话框的列表内容setSingleChoiceItems 设置单选按钮的列表项,setMultiChoiceItems设置多选按钮的列表项setVIEw 设置自定义视图的对话框默认对话框

如下图所示(显示了标题,内容,两个按钮):

关键代码如下:

 1     /** 2      * 默认对话框事件响应方法 3      * 4      * @param v 5      */ 6     public voID showDefaultDialog(VIEw v) { 7         //创建一个Builder 8         AlertDialog.Builder builder = new AlertDialog.Builder(this); 9         设置对话框标题10         builder.setTitle("提示"11         设置对话框内容12         builder.setMessage("这是一个对话框的提示"13         积极按钮?14         builder.setPositivebutton("OK",new DialogInterface.OnClickListener() {15             @OverrIDe16             voID onClick(DialogInterface dialog,1)">int which) {17                 Toast.makeText(MainActivity.this,"你选择了OK",Toast.LENGTH_SHORT).show();18             }19         });20         消极按钮21         builder.setNegativebutton("Cancel",1)">22 23             24                 Toast.makeText(MainActivity.25 26 27         创建一个对话框28         AlertDialog dialog = builder.create();29         显示一个对话框30         dialog.show();31     }
列表对话框

如下图所示(d出的对话框内容展示为一个列表)用户通过列表进行选择

关键代码如下:

 1       * 列表对话框响应事件 showListDialog(VIEw v) {构件一个对话框Builder设置标题10         builder.setTitle(R.string.pick_color);将资源文件转化为数组对象12         arr_colors = getResources().getStringArray(R.array.arr_colors);设置列表内容和点击事件14         builder.setItems(R.array.arr_colors,"你选择了[" + arr_colors[which] + "]"21         AlertDialog dialog =22         23 24     }
单选按钮对话框

如下图所示(用户通过单选按钮进行选择):

关键代码如下:

 1         * 单选框对话框按钮事件 showSingleDialog(VIEw v) {13         checkedItems=new [arr_colors.length];14         设置列表内容和点击事件,第二个参数checkedItem表示默认选中项15         builder.setSingleChoiceItems(R.array.arr_colors,1)">16 17             18                 for(int i=0;i<checkedItems.length;i++){19                     if(i==which){20                         checkedItems[i]=1;21                     }else{22                         checkedItems[i]=0                    }24                 }25                 Toast.makeText(MainActivity.27 28         29         builder.setPositivebutton("OK",1)">31             32                 Toast.makeText(MainActivity.getCheckedItems(),1)">33 34 35         36         builder.setNegativebutton("Cancel",1)">37 38             39                 Toast.makeText(MainActivity.40 41 42         43         AlertDialog dialog =44         45 46     }
复选框对话框

如下图所示(对话框的内容可以进行多选):

关键代码如下:

 1        * 复选框对话框事件 showMultipleDialog(VIEw v) {15         builder.setMultiChoiceItems(R.array.arr_colors,1)">null,1)"> DialogInterface.OnMultiChoiceClickListener() {int which,1)">boolean isChecked) {18                 String msg=""19                 if(isChecked){20                     checkedItems[which]=121                     msg="选择"22                 }23                     checkedItems[which]=024                     msg="取消"26                 Toast.makeText(MainActivity.28 30         builder.setPositivebutton("OK",1)">31 32             33                 Toast.makeText(MainActivity.35 36         37         builder.setNegativebutton("Cancel",1)">38 39             40                 Toast.makeText(MainActivity.42 43         44         AlertDialog dialog =45         46 47     }
自定义对话框


如下图所示(用户可以在d出的对话框中输入内容等信息)

关键代码如下:

     * 自定义对话框事件按钮 4       5      showCustomerDialog(VIEw v) { 6  7         AlertDialog.Builder builder =  8          Get the layout inflater 9         LayoutInflater inflater = getLayoutInflater();10         VIEw customerVIEw=inflater.inflate(R.layout.dialog_layout,1)">null Inflate and set the layout for the dialog12          Pass null as the parent vIEw because its going in the dialog layout13         mUsername= (EditText) customerVIEw.findVIEwByID(R.ID.username);14         mPassword= (EditText) customerVIEw.findVIEwByID(R.ID.password);        builder.setVIEw(customerVIEw)16                  Add action buttons17                 .setPositivebutton(R.string.sign_in,1)">                    @OverrIDe ID) {20                          sign in the user ...21                         Toast.makeText(MainActivity.mPassword.getText(),1)">                })24                 .setNegativebutton(R.string.cancel2,1)">25                     26                         Toast.makeText(MainActivity.27 29                 });30         31         AlertDialog dialog =32         34     }
备注


记录学习,记录进步!

总结

以上是内存溢出为你收集整理的一起学Android之Dialog全部内容,希望文章能够帮你解决一起学Android之Dialog所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1121294.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存