Android Dialog对话框用法实例详解_Android

本文实例讲述了Android Dialog对话框用法。分享给大家供大家参考,具体如下:

Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int),dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).

1. onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。这样,每个对话框继承这个Activity的特定属性。比如,当一个对话框打开时,菜单键显示为这个Activity定义的选项菜单,音量键修改Activity使用的音频流。

2. 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()中创建的对话框对象。

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

使用方法一:当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式

protected void dialog() {
  AlertDialog.Builder builder = new Builder(Main.this);
  builder.setMessage("确认退出吗?");
  builder.setTitle("提示");
  builder.setPositiveButton("确认", new OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
      dialog.dismiss();
      Main.this.finish();
    }
  });
  builder.setNegativeButton("取消", new OnClickListener() {
    @Override
    public 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.KEYCODE_BACK && event.getRepeatCount() == 0) {
    dialog();
  }
  return false;
}

使用方法二:改变对话框的图表,添加了三个按钮

Dialog dialog = new AlertDialog.Builder(this)
    .setIcon( android.R.drawable.btn_star)
    .setTitle("喜好调查")
    .setMessage("你喜欢李连杰的电影吗?")
    .setPositiveButton("很喜欢",new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
          // TODO Auto-generated method stub
          Toast.makeText(Main.this, "我很喜欢他的电影。",Toast.LENGTH_LONG).show();
        }
      })
    .setNegativeButton("不喜欢", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
           // TODO Auto-generated method stub
          Toast.makeText(Main.this, "我不喜欢他的电影。", Toast.LENGTH_LONG).show();
        }
      })
    .setNeutralButton("一般", new OnClickListener() {
         @Override
        public void onClick(DialogInterface dialog, int which) {
           // TODO Auto-generated method stub
          Toast.makeText(Main.this, "谈不上喜欢不喜欢。", Toast.LENGTH_LONG).show();
         }
      })
    .create();
dialog.show();

使用方法三:信息内容是一个简单的View类型

new AlertDialog.Builder(this)
    .setTitle("请输入")
    .setIcon(android.R.drawable.ic_dialog_info)
    .setView(new EditText(this))
    .setPositiveButton("确定", null)
    .setNegativeButton("取消", null)
    .show();

使用方法四:信息内容是一组单选框

new AlertDialog.Builder(this)
    .setTitle("复选框")
    .setMultiChoiceItems(new String[] { "Item1", "Item2" }, null, null)
    .setPositiveButton("确定", null)
    .setNegativeButton("取消", null)
    .show();

使用方法五:信息内容是一组多选框

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

使用方法六:信息内容是一组简单列表项

new AlertDialog.Builder(this)
    .setTitle("列表框")
    .setItems(new String[] { "Item1", "Item2" }, null)
    .setNegativeButton("确定", null)
    .show();

使用方法七:信息内容是一个自定义的布局

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/dialog"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="#ffffffff"
  android:orientation="horizontal" >
  <TextView
    android:id="@+id/tvname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="姓名:" />
  <EditText
    android:id="@+id/etname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="100dip" />
</LinearLayout>

调用代码:

LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.dialog,(ViewGroup) findViewById(R.id.dialog));
new AlertDialog.Builder(this)
    .setTitle("自定义布局")
    .setView(layout)
    .setPositiveButton("确定", null)
    .setNegativeButton("取消", null)
    .show();

使用方法七:fragment中的使用方法,只显示确认按钮

new AlertDialog.Builder(getActivity())
    .setMessage(m)
    .setPositiveButton("确定",
        new DialogInterface.OnClickListener(){
          public void onClick(DialogInterface dialoginterface, int i){}
        })
    .show();

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》、《Android文件操作技巧汇总》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android视图View技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 对话框
dialog
yii分页用法实例详解、dialog对话框、android对话框dialog、ajax弹出dialog对话框、js弹出dialog对话框,以便于您获取更多的相关知识。

时间: 2024-10-02 14:21:28

Android Dialog对话框用法实例详解_Android的相关文章

android之camera用法实例详解_Android

本文实例讲述了android之camera用法.分享给大家供大家参考.具体如下: 1.关于预览横竖差90度的问题 原因分析 经过查证和实验,可以证实:Android提供的SDK(android.hardware.Camera)里大概不能正常的使用竖屏(portrait layout)加载照相机,当用竖屏模式加载照相机时会产生以下情况: ①. 照相机成像左倾90度(倾斜): ②. 照相机成像长宽比例不对(失比). 之所以是"大概",原因是因为可能可以通过一些比较复杂的手段解决.如果以上成

Android Toast通知用法实例详解_Android

本文实例讲述了Android Toast通知用法.分享给大家供大家参考,具体如下: Toast在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失. 1.默认用法 复制代码 代码如下: Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show(); 2.Fragment中的用法 复制代码 代码如下: Toast.makeText(getActivity(),"网络连接错误,请检

Java中的instanceof关键字在Android中的用法实例详解_java

在下面介绍Android中如何使用instanceof关键字开发更方便时,先来温习一下java中instanceof的概念. instanceof大部分的概念是这样定义的:instanceof是Java的一个二元操作符,和==,>,<是同一类东西.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据.举个栗子: String s = "I AM an Object!"; boolean isObj

Android开发之TimePicker控件用法实例详解_Android

本文实例分析了Android开发之TimePicker控件用法.分享给大家供大家参考,具体如下: 新建项目: New Android Project-> Project name:HelloSpinner Build Target:Android 2.2 Application name:HelloSpinner Package name:com.b510 Create Activity:MainActivity Min SDK Version:9 Finish 运行效果: 如果: return

Android开发之Animations动画用法实例详解_Android

本文实例讲述了Android开发之Animations动画用法.分享给大家供大家参考,具体如下: 一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 Java Code代码中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸

Android控件之ListView用法实例详解_Android

本文实例讲述了Android控件之ListView用法.分享给大家供大家参考.具体如下: 示例一: 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示. main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" androi

Android开发之TabActivity用法实例详解_Android

本文实例讲述了Android开发之TabActivity用法.分享给大家供大家参考,具体如下: 一.简介 TabActivity继承自Activity,目的是让同一界面容纳更多的内容.TabActivity实现标签页的功能,通过导航栏对各个页面进行管理. 二.XML布局文件 注意: 1.TabActivity的布局文件要求以TabHost作为XML布局文件的根. 2.通常我们采用线性布局,所以<TabHost> 的子元素是 <LinearLayout>. 3.<TabWidg

Android编程之SurfaceView实例详解_Android

本文实例讲述了Android编程之SurfaceView用法.分享给大家供大家参考,具体如下: 关于surfaceView相关知识: View和SurfaceView主要区别: 1. View只能在UI线程中刷新,而SurfaceView可以在子线程中刷新 2. SurfaceView可以控制刷新频率 SurfaceView几个重要的方法: 1. 继承SurfaceView 后调用getHolder()方法可以获取到mSurfaceHolder对象这个对于可以控制SurfaceView的绘制 2

Android的搜索框架实例详解_Android

基础知识 Android的搜索框架将代您管理的搜索对话框,您不需要自己去开发一个搜索框,不需要担心要把搜索框放什么位置,也不需要担心搜索框影响您当前的界面.所有的这些工作都由SearchManager类来为您处理(以下简称"搜索管理器"),它管理的Android搜索对话框的整个生命周期,并执行您的应用程序将发送的搜索请求,返回相应的搜索关键字. 当用户执行一个搜索,搜索管理器将使用一个专门的Intent把搜索查询的关键字传给您在配置文件中配置的处理搜索结果的Activity.从本质上讲