您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 手机/mobile开发 > android UI说明和开发实例
在Android开发当中,在界面上弹出一个Dialog对话框使我们经常需要做的,本篇随笔将详细的讲解Dialog对话框这个概念,包括定义不同样式的对话框。一、Dialog我们首先来看看android官方文档对Dialog的介绍Adialogisasmallwindowthatpromptstheusertomakeadecisionorenteradditionalinformation.Adialogdoesnotfillthescreenandisnormallyusedformodaleventsthatrequireuserstotakeanactionbeforetheycanproceed.dialog就是一个在屏幕上弹出一个可以让用户做出一个选择,或者输入额外的信息的对话框,一个对话框并不会沾满我们整个的屏幕,并且通常用于模型事件当中需要用户做出一个决定后才会继续执行。Dialog类是dialog对话框的基类,但是我们应该避免直接使用这个类来实例化一个dialog对话框,我们应当使用其子类来得到一个对话框:java.lang.Object↳android.app.DialogKnownDirectSubclassesAlertDialog,CharacterPickerDialog,MediaRouteChooserDialog,MediaRouteControllerDialog,PresentationKnownIndirectSubclassesDatePickerDialog,ProgressDialog,TimePickerDialog我们看到,Dialog有很多的子类实现,所以我们要定义一个对话框,使用其子类来实例化一个即可,而不要直接使用Dialog这个父类来构造。二、AlertDialog今天我们重点要来了解的就是AlertDialog对话框,我们看到,AlertDialog是Dialog的一个直接子类。使用AlertDialog,我们可以显示一个标题,最多3个按钮操作,以及一组选择框或者是自己定义的弹出框。这里借用android的官方文档提供的一个图来看看AlertDialog框的组成:①区域1那里就是定义弹出框的头部信息,包括标题名或者是一个图标。②区域2那里是AlertDialog对话框的content部分,在这里我们可以设置一些message信息,或者是定义一组选择框,还可以定义我们自己的布局弹出框。③区域3那里使我们的ActionButtons部分,这里我们可以定义我们的操作按钮。说到ActionButtons这里要特别注意一下:在AlertDialog中,定义按钮都是通过setXXXButton方法来完成,其中一共有3种不同的ActionButtons供我们选择:1.setPositiveButton(CharSequencetext,DialogInterface.OnClickListenerlistener)这是一个相当于OK、确定操作的按钮,2.setNegativeButton(CharSequencetext,DialogInterface.OnClickListenerlistener)这是一个相当于取消操作的按钮。3.setNeutralButton(CharSequencetext,DialogInterface.OnClickListenerlistener)这个是相当于一个忽略操作的按钮。我们每一种actionbuttons最多只能出现一个,即弹出对话框最多只能出现一个PositiveButton。接下来我们通过一个一个的具体实例来看看我们常用的几种AlertDialog对话框。1.弹出一个警告框,并有三个按钮可选择我们来看看代码部分:button.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//通过AlertDialog.Builder这个类来实例化我们的一个AlertDialog的对象AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this);//设置Title的图标builder.setIcon(R.drawable.ic_launcher);//设置Title的内容builder.setTitle(弹出警告框);//设置Content来显示一个信息builder.setMessage(确定删除吗?);//设置一个PositiveButtonbuilder.setPositiveButton(确定,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Toast.makeText(MainActivity.this,positive:+which,Toast.LENGTH_SHORT).show();}});//设置一个NegativeButtonbuilder.setNegativeButton(取消,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Toast.makeText(MainActivity.this,negative:+which,Toast.LENGTH_SHORT).show();}});//设置一个NeutralButtonbuilder.setNeutralButton(忽略,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Toast.makeText(MainActivity.this,neutral:+which,Toast.LENGTH_SHORT).show();}});//显示出该对话框builder.show();}});我们如果要创建一个AlertDialog对话框,需要使用AlertDialog的一个内部类,即AlertDialog.Builder来构建一个AlertDialog的对话框,然后通过setXX方法来设置我们想要显示的内容即可。我们看到,我们一共设置了3个actionbuttons,每一个button都为其绑定了一个DialogInterface.OnClickListener()的监听事件,然后在里面通过Toast吐司对话框(这个在后面随笔中会讲解)来弹出一下我们的一些信息,which方法表示的是actionbutton所代表的int值:positive:-1negative:-2neutral:-3我们可以知道,which=-1就表示点击的是确定按钮,-2表示点击的是取消按钮,-3表示点击的是忽略按钮。2.下拉列表弹出框关键代码如下:button2.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewarg0){AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this);builder.setIcon(R.drawable.ic_launcher);builder.setTitle(选择一个城市);//指定下拉列表的显示数据finalString[]cities={广州,上海,北京,香港,澳门};//设置一个下拉的列表选择项builder.setItems(cities,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Toast.makeText(MainActivity.this,选择的城市为:+cities[which],Toast.LENGTH_SHORT).show();}});builder.show();}});在这里我们通过setItems(CharSequence[]items,DialogInterface.OnClickListenerlistener)方法来设置我们的一个下拉列表框。注意:因为下拉列表框或者是下拉多选框这些都是显示在Content中的,所以message和下拉列表框这些是不能够同时存在的。我们也可以给其绑定一个DialogInterface.OnClickListener监听器,当选中一个选项时,对话框就会消失掉。这里的which代表的是下拉列表的每个选项的索引,通过这个我们可以轻松得到用户选中的是哪一个选项。3.弹出一个下拉单选框button3.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this);builder.setIcon(R.drawable.ic_launcher);builder.setTitle(请选择性别);finalString[]sex={男,女,未知性别};//设置一个单项选择下拉框/***第一个参数指定我们要显示的一组下拉单选框的数据集合*第二个参数代表索引,指定默认哪一个单选框被勾选上,1表示默认'女'会被勾选上*第三个参数给每一个单选项绑定一个监听器*/builder.setSingleChoiceItems(sex,1,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Toast.makeText(MainActivity.this,性别为:+sex[which],Toast.LENGTH_SHORT).show();}});builder.setPositiveButton(确定,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){}});builder.setNegativeButton(取消,newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){}});builder.show();}});注意:在弹出下拉单选框时,当我们选中一个选项,对话框是不会消失的,我们需要点击actionbutton才能让对话框消失。4.弹出一个下拉多选框button4.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this);builder.setIcon(R.drawable.ic_launcher);builder.setTitle(爱好);finalString[]hobbies={篮球,足球,网球,斯诺克};//设置一个单项选择下拉框/***第一个参数指定我们要显示的一组下拉多选框的数据集合*第二个参数代表哪几个选项被选择,如果是null,则表示一个都不选择,如
本文标题:android UI说明和开发实例
链接地址:https://www.777doc.com/doc-7027049 .html