`

Android学习笔记-对话框的应用

阅读更多

 

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)。这将删除任何内部对象引用而且如果这个对话框正在显示,它将被消除。

code:
 创建对话框方法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;
}

 

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

 

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("复选框").setMultiChoiceItems(
     new String[] { "Item1", "Item2" }, null, null)
     .setPositiveButton("确定", null)
     .setNegativeButton("取消", null).show();

 


 

分享到:
评论

相关推荐

    学习笔记----Android的对话框

    在Android应用开发中,对话框(Dialog)是一种重要的交互元素,用于向用户显示临时信息或者进行简单的用户交互。本文将深入探讨Android对话框的使用、种类及其相关知识点。 1. 对话框的基本类型: - AlertDialog:...

    Android学习笔记(八)——显示进度对话框

    总结起来,Android中的进度对话框是提升用户体验的重要工具,正确使用它可以有效地告知用户应用的状态,避免用户感到不耐烦。无论是简单的不定量对话框还是显示具体进度的条形对话框,都需要根据实际任务特性来选择...

    android笔记--适应于初学者

    在Android开发领域,初学者经常会遇到许多基础知识的学习挑战,如对话框(Dialog)的使用、数据存储的方法、动画的实现以及广播接收器(Broadcast Receiver)的应用。这篇笔记将深入讲解这些核心概念,帮助初学者快速...

    Android学习笔记(九)——更复杂的进度对话框

    在“Android学习笔记(九)——更复杂的进度对话框”中,我们将重点关注如何自定义和使用ProgressDialog。以下是一些关键点: 1. **创建进度对话框**: - 使用`ProgressDialog.show()`方法初始化一个进度对话框。...

    Android学习新手笔记

    标题《Android学习新手笔记》所涉及的知识点: 1. Android背景知识 - Android系统基于Linux系统开发,拥有开放源码。 - Android系统框架由多个组件构成,其中包括Activity、Intent、Service、ContentProvider、...

    Android基础学习笔记

    Android基础学习笔记主要涵盖了一系列关于Android开发的基本概念和关键组件,以下是这些知识点的详细解析: 1. **Activity**: 是Android应用程序的基本单元,它代表用户在屏幕上看到的一个界面。每个Activity都必须...

    Android应用开发_学习笔记.doc

    【Android应用开发学习笔记】 Android应用开发是移动设备软件开发的重要组成部分,主要涉及四大组件、UI设计以及系统交互。本文将深入探讨这些关键知识点。 **一、Android四大组件** 1. **Activity(活动)** - ...

    《Android应用开发揭秘》读书笔记

    《Android应用开发揭秘》读书笔记不仅是一份个人学习历程的记录,更是一部深入浅出的Android开发指南。本书籍及笔记覆盖了从基础知识到高级应用的广泛内容,为初学者和有经验的开发者提供了宝贵的资源。 ### ...

    Android基础笔记

    Android 菜单、对话框和通知是 Android 应用中的三个重要概念,用于实现应用程序的交互。菜单可以使用 Menu 类实现,对话框可以使用 Dialog 类实现,通知可以使用 Notification 类实现。 十二、Fragment Android ...

    android学习笔记

    ### Android学习笔记——开发环境搭建详解 #### 一、引言 随着移动互联网的迅猛发展,Android已经成为全球最大的移动操作系统之一。对于想要进入移动应用开发领域的开发者来说,掌握Android开发技术变得尤为重要。...

    android学习笔记(二、便签demo)

    这个“android学习笔记(二、便签demo)”将带你深入理解Android应用程序的基本构建和功能实现,特别是涉及到用户界面设计、数据存储以及事件处理等方面。这篇博客的作者通过分享自己的实践经验和代码示例,帮助初学...

    android超前学习笔记

    ### Android超前学习笔记知识点详解 #### 一、Android App中的关键类——Dialogs 在Android应用开发中,`Dialog`及其子类是用于创建弹出对话框的关键组件,为用户提供交互式信息或请求用户输入的便捷方式。本文将...

    Android_学习笔记

    在Android开发中,四大核心组件是构建应用的基础,它们分别是Activity、Intent、Service和ContentProvider。下面我们将逐一探讨这些组件的特性和使用方法。 1. **Activity**:Activity是应用程序的用户界面,它负责...

    Android学习笔记15:绝对布局管理器AbsoluteLayout

    在本篇“Android学习笔记15:绝对布局管理器AbsoluteLayout”中,我们将深入探讨一种允许开发者精确控制视图位置的布局方式——AbsoluteLayout。尽管在现代Android开发中已经不推荐使用,但在某些特定场景下,它仍然...

    Android 入门学习笔记实用源码

    这份"Android入门学习笔记实用源码"集合了多个关键概念和实践案例,旨在帮助初学者快速理解Android应用开发的基础。以下是对这些文件名称所对应知识点的详细说明: 1. **Test1Intent**: Intent是Android中的一个...

    android学习笔记2(五种布局)

    这篇“android学习笔记2”着重探讨了五种常见的Android布局,它们分别是线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、网格布局(GridLayout)以及约束布局(ConstraintLayout)。...

    Android-Java的常见集中设计模式学习笔记

    本学习笔记主要聚焦于Java中的常见设计模式,并将这些概念与Android开发实践相结合。 1. **单例模式**:在Android中,单例模式常用于创建全局唯一的对象,例如应用程序的Application类就是一个典型的单例,它在整个...

Global site tag (gtag.js) - Google Analytics