
对话框(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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)