Android 对话框(Dialog)大全 建立你自己的对话框_第1页
Android 对话框(Dialog)大全 建立你自己的对话框_第2页
Android 对话框(Dialog)大全 建立你自己的对话框_第3页
Android 对话框(Dialog)大全 建立你自己的对话框_第4页
Android 对话框(Dialog)大全 建立你自己的对话框_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android 对话框(Dialog大全 建立你自己的对话框Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int, onPrepareDialog(int, Dialog, showDialog(int, dismissDialog(int等方法,如果使用这些方法的话,Activity将通过getOwnerActivity(方法返回该Activity管理的对话框(dialog.onCreateDialog(int:当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状

2、态并挂靠到Activity上。这样,每个对话框继承这个Activity的特定属性。比如,当一个对话框打开时,菜单键显示为这个Activity定义的选项菜单,音量键修改Activity使用的音频流。showDialog(int: 当你想要显示一个对话框时,调用showDialog(int id 方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id,你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(int id相同的ID。当你创建这个对话框后,在Activity的最后返

3、回这个对象。onPrepareDialog(int, Dialog:在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(int id, Dialog. 如果你想在每一次对话框被打开时改变它的任何属性,你可以定义这个方法。这个方法在每次打开对话框时被调用,而onCreateDialog(int 仅在对话框第一次打开时被调用。如果你不定义onPrepareDialog(,那么这个对话框将保持和上次打开时一样。这个方法也被传递以对话框的ID,和在onCreateDialog(中创建的对话框对象。dismissDialog(int:当你准备关闭对话框时,你可以通过对

4、这个对话框调用dismiss(来消除它。如果需要,你还可以从这个Activity中调用dismissDialog(int id 方法,这实际上将为你对这个对话框调用dismiss( 方法。 如果你想使用onCreateDialog(int id 方法来管理你对话框的状态(就如同在前面的章节讨论的那样),然后每次你的对话框消除的时候,这个对话框对象的状态将由该Activity保留。如果你决定不再需要这个对象或者清除该状态是重要的,那么你应该调用removeDialog(int id。这将删除任何内部对象引用而且如果这个对话框正在显示,它将被消除。下面是几种对话框的效果图1图2图3图4图5图6图7

5、图1效果:该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。代码:创建对话框方法dialog(protected void dialog( AlertDialog.Builder builder = new Builder(Main.this;builder.setMessage(确认退出吗?;builder.setTitle(提示;builder.setPositiveButton(确认, new OnClickListener( Overridepublic void onClick(DialogInterface dialog, int which dialog.

6、dismiss(;Main.this.finish(;builder.setNegativeButton(取消, new OnClickListener( Overridepublic void onClick(DialogInterface dialog, int which dialog.dismiss(;builder.create(.show(;在onKeyDown(int keyCode, KeyEvent event方法中调用此方法public boolean onKeyDown(int keyCode, KeyEvent event if (keyCode = KeyEvent.

7、KEYCODE_BACK & event.getRepeatCount( = 0 dialog(;return false;图2效果:改变了对话框的图表,添加了三个按钮Dialog dialog = new AlertDialog.Builder(this.setIcon(android.R.drawable.btn_star.setTitle(喜好调查.setMessage(你喜欢李连杰的电影吗?.setPositiveButton(很喜欢,new OnClickListener( Overridepublic void onClick(DialogInterface dialog, int

8、 which / TODO Auto-generated method stubToast.makeText(Main.this, 我很喜欢他的电影。,Toast.LENGTH_LONG.show(;.setNegativeButton(不喜欢, new OnClickListener( Overridepublic void onClick(DialogInterface dialog, int which / TODO Auto-generated method stubToast.makeText(Main.this, 我不喜欢他的电影。, Toast.LENGTH_LONG.show(

9、;.setNeutralButton(一般, new OnClickListener( Overridepublic void onClick(DialogInterface dialog, int which / TODO Auto-generated method stubToast.makeText(Main.this, 谈不上喜欢不喜欢。, Toast.LENGTH_LONG.show(;.create(;dialog.show(;图3效果:信息内容是一个简单的View类型new AlertDialog.Builder(this.setTitle(请输入.setIcon(android

10、.R.drawable.ic_dialog_info.setView(new EditText(this.setPositiveButton(确定, null.setNegativeButton(取消, null.show(;图4效果:信息内容是一组单选框new AlertDialog.Builder(this.setTitle(复选框.setMultiChoiceItems(new String Item1, Item2 , null, null.setPositiveButton(确定, null.setNegativeButton(取消, null.show(;图5效果:信息内容是一组多

11、选框new AlertDialog.Builder(this.setTitle(单选框.setIcon(android.R.drawable.ic_dialog_info.setSingleChoiceItems(new String Item1, Item2 , 0,new DialogInterface.OnClickListener( public void onClick(DialogInterface dialog, int which dialog.dismiss(;.setNegativeButton(取消, null.show(;图6效果:信息内容是一组简单列表项new Ale

12、rtDialog.Builder(this.setTitle(列表框.setItems(new String Item1, Item2 , null.setNegativeButton(确定, null.show(;图7效果:信息内容是一个自定义的布局1.布局文件 android:layout_height=wrap_content android:layout_width=wrap_contentandroid:background=#ffffffff android:orientation=horizontalandroid:id=+id/dialogandroid:layout_widt

13、h=wrap_content android:id=+id/tvname android:text= 姓名: / android:layout_width=wrap_content android:id=+id/etname android:minWidth=100dip/ 2.调用代码LayoutInflater inflater = getLayoutInflater(;View layout = inflater.inflate(R.layout.dialog,(ViewGroup findViewById(R.id.dialog;new AlertDialog.Builder(this

14、.setTitle(自定义布局.setView(layout.setPositiveButton(确定, null.setNegativeButton(取消, null.show(;Android 对话框【Dialog】去除白色边框代码使用样式文件,在values 目录下新建styles.xml文件,编写如下代码:null itemtrue itemfalse itemtrue itemandroid:color/black itemnull itemfalse itemstyleresources复制代码调用时,使用AlerDialog的接口类,Dialog 接口编写如下代码:Dialog

15、dialog = new Dialog(SetActivity.this, R.style.dialog;dialog.setContentView(R.layout.test;dialog.show(;复制代码下面我们查看一下Dialog的源码文件,里面的构造函数为如下:public Dialog(Context context, int theme mContext = new ContextThemeWrapper(context, theme = 0 ? ernal.R.style.Theme_Dialog : theme;mWindowManager = (WindowManagercontext.getSystemService(window;Window w = PolicyManager.makeNewWindow(mContext;mWindow = w;w.setCallback(this;w.setWindowManager(mWindowManager, null, null;w.setGravity(Gravity.CENTER;mUiThread =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论