`
朱嘉华
  • 浏览: 238265 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

android 对话提示框大全

阅读更多
Android 对话框(Dialog)大全 建立你自己的对话框
发表日期:2010-11-15 已被阅读:[ <script src="/adsc/script_get.aspx?a=qty&amp;ID=1280" type="text/javascript"></script> 657]次 
<!--DATA[-->

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

 

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

 

  showDialog(int): 当你想要显示一个对话框时,调用showDialog(int id) 方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id),你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(int id)相同的ID。当你创建这个对话框后,在Activity的最后返回这个对象。

 

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

 

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

 

下面是几种对话框的效果

图1

图2

图3

图4

图5

图6

图7

  

图1效果:该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。

     代码:

  创建对话框方法dialog()

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;
 }

  图2效果:改变了对话框的图表,添加了三个按钮

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

 

图3效果:信息内容是一个简单的View类型

new AlertDialog.Builder(this).setTitle("请输入").setIcon(
     android.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效果:信息内容是一组多选框

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 AlertDialog.Builder(this).setTitle("列表框").setItems(
     new String[] { "Item1", "Item2" }, null).setNegativeButton(
     "确定", null).show();

 

图7效果:信息内容是一个自定义的布局

1.布局文件

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

</LinearLayout>

2.调用代码

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

 

分享到:
评论

相关推荐

    android自定义弹出框实现(修改版).zip

    在Android开发中,自定义弹出框是一种常见的需求,它能提供更加个性化和灵活的交互方式。本项目“android自定义弹出框实现(修改版)”是一个针对原生Android弹出框进行定制化改造的例子,主要涉及Java编程语言。...

    android带ListView的对话框,选择省份城市

    在Android开发中,创建一个带有ListView的对话框是常见的需求,比如在用户需要选择省份或城市时。这个场景可以通过自定义对话框实现,提供更好的用户体验。以下是对标题和描述中涉及知识点的详细解释: 1. **...

    Android自定义弹出框

    在Android开发中,自定义弹出框(Dialog)是一个常用的功能,它允许开发者根据应用的UI风格和功能需求创建独特且交互性强的对话界面。本文将深入探讨如何在Android中自定义实现弹出框,主要关注`自定义Dialog`这一...

    Rasa框架的新闻对话系统,Android客户端.zip

    Android 项目是使用 Android 操作系统和相关开发工具开发的一款移动应用程序。Android 平台提供了丰富的功能和接口,开发人员可以使用 Java 或 Kotlin 等编程语言编写 Android 应用程序。Android 项目也可以是针对...

    Android模拟美团客户端进度提示框

    在Android开发中,创建自定义的进度提示框是提升用户体验的一种有效方式,尤其是当应用执行耗时操作时,如网络请求或数据加载。本文将详细介绍如何模拟美团客户端的进度提示框,它采用动画形式展示加载等待状态,给...

    对话框式的activity

    在Android开发中,"对话框式的activity",也被称为Dialog-themed Activity,是一种特殊的Activity呈现方式,它模拟了系统对话框的外观和行为。通常,当我们需要在应用中展示临时信息或者进行用户交互,但又不希望...

    对话框式的菜单

    在Android开发中,对话框式菜单(Dialog-style Menu)是一种常见的用户界面元素,它能够以弹出窗口的形式显示一系列选项,通常用于有限的、上下文相关的操作选择。对话框式菜单以其直观、节省屏幕空间的特点,被广泛...

    Android泡泡聊天界面的实现

    泡泡聊天界面的特点是对话内容以气泡的形式显示,每个气泡包含发送者的信息,同时根据发送者和接收者的不同,气泡会有不同的颜色和方向。下面将详细介绍如何在Android中实现这样的聊天界面。 首先,我们需要准备UI...

    android等待对话框(可定时自动关闭)

    首先,我们需要创建一个自定义的等待对话框类,继承自`AlertDialog.Builder`。在这个类中,我们将设置对话框的基本样式,包括标题、消息和按钮。由于我们希望对话框在特定时间后自动消失,因此还需要添加一个计时器...

    有关于android弹出框

    7. **工具类封装**: 为了提高代码复用性,开发者通常会创建一个工具类,封装常用的对话框操作,如显示信息提示、确认框、选择框等。这样在不同地方需要使用对话框时,只需要调用相应的方法即可。 8. **兼容性处理**...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Delphi XE5 Android Dialogs 对话框

    《Delphi XE5在Android平台上构建对话框的探索》 在移动开发领域,Delphi XE5作为一款强大的跨平台开发工具,以其高效的代码生成和丰富的组件库,深受开发者喜爱。尤其在针对Android平台的应用开发中,对话框...

    提示框,加载框

    提示框(Alert Box)通常是在用户执行特定操作后弹出的对话窗口,用来通知用户一些重要的信息,例如警告、确认或询问。提示框分为多种类型,如警告对话框、确认对话框和输入对话框,每种都有其特定的用途。在iOS开发...

    打造Android通用的自定义AlertDialog提示框使用示例

    `AlertDialog`是Android系统提供的对话框类,通常用于显示简单的警告、询问或者确认信息。创建一个基本的`AlertDialog`可以通过`AlertDialog.Builder`来实现,如下: ```java AlertDialog.Builder builder = new ...

    Google Android SDK开发范例大全的目录

    4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制-p155 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制...

    Android模仿聊天对话界面功能实现

    在Android应用开发中,创建一个类似短信或即时通讯应用的聊天对话界面是一项常见的任务。这个过程涉及到多个技术点,包括布局设计、数据处理、事件监听以及用户交互优化。以下是对这个主题的详细解释: 1. **布局...

    各种Android Dialog创建及其监听事件实现

    在Android开发中 我们经常会需要在Android界面上弹出一些对话框 比如询问用户或者让用户选择 关于Android Dialog的使用方法 已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例) 但是只是...

    Android底部弹出iOS7风格对话框_库文件资源

    3. 实现对话框类:创建一个自定义的DialogFragment或Activity,加载上面定义的布局,并在适当的地方应用动画。 ```java public class Ios7StyleDialogFragment extends DialogFragment { @Override public Dialog...

    Android开发丶自定义带EditText的AlertDialog

    AlertDialog是Android提供的一种轻量级的对话组件,用于显示警告、确认或信息等简短消息。它通常包含一个标题、一个信息文本和一些操作按钮。然而,标准的AlertDialog并不直接支持内嵌EditText,因此我们需要对其...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    Google Android SDK开发范例大全(完整版) 包含部分书中源码 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 ...

Global site tag (gtag.js) - Google Analytics