`

【Android】对话框 AlertDialog

 
阅读更多

本讲介绍一下Android基本组件:对话框AlertDialog。

API:

java.lang.Object
android.app.AlertDialog.Builder

使用AlertDialog.Builder创建对话框需要了解以下几个方法:

  • setTitle :为对话框设置标题
  • setIcon :为对话框设置图标
  • setMessage:为对话框设置内容
  • setView : 给对话框设置自定义样式
  • setItems :设置对话框要显示的一个list,一般用于显示几个命令时。
  • setMultiChoiceItems :用来设置对话框显示一系列的复选框。
  • setNeutralButton :
  • setPositiveButton :给对话框添加"Yes"按钮
  • setNegativeButton :对话框添加"No"按钮
  • create : 创建对话框
  • show :显示对话框

下面我们来看一下最简单对话框。


这个对话框只是简单的显示内容,使用默认图标,没有按钮,不多说,贴代码:


  1. newAlertDialog.Builder(Lesson_01_Pic.this).setTitle("提示标题").setMessage("这是提示内容").show();

(Lesson_02_Dia是类名,请换成自己的!!)

下面我们为这个对话框加个按钮,效果:

代码:

  1. newAlertDialog.Builder(Lesson_01_Pic.this)
  2. .setTitle("这是标题")
  3. .setMessage("这是提示内容")
  4. .setPositiveButton("确定",
  5. newDialogInterface.OnClickListener(){
  6. publicvoidonClick(DialogInterfacedialoginterface,inti){
  7. //按钮事件
  8. Toast.makeText(Lesson_01_Pic.this,"确定",Toast.LENGTH_LONG).show();
  9. }
  10. }).show();

添加按钮时,需要同时为该按钮指定监听器。

下面,我们修改一个图标,添加两个按钮,同时显示多个选项,先看下效果:

代码:

  1. packagecom.yfz;
  2. importandroid.app.Activity;
  3. importandroid.app.AlertDialog;
  4. importandroid.app.Dialog;
  5. importandroid.content.DialogInterface;
  6. importandroid.content.DialogInterface.OnClickListener;
  7. importandroid.content.DialogInterface.OnMultiChoiceClickListener;
  8. importandroid.os.Bundle;
  9. importandroid.view.View;
  10. importandroid.widget.Button;
  11. importandroid.widget.Toast;
  12. publicclassLesson_02_DiaextendsActivity{
  13. /**Calledwhentheactivityisfirstcreated.*/
  14. @Override
  15. publicvoidonCreate(BundlesavedInstanceState){
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. Buttonbutton=(Button)findViewById(R.id.b01);
  19. button.setText("对话框");
  20. button.setOnClickListener(newButton.OnClickListener(){
  21. @Override
  22. publicvoidonClick(Viewv){
  23. //选项数组
  24. String[]choices={"Facebook","Twitter"};
  25. //Check判断数组,与选项对应
  26. boolean[]chsBool={true,false};
  27. //包含多个选项及复选框的对话框
  28. AlertDialogdialog=newAlertDialog.Builder(Lesson_02_Dia.this)
  29. .setIcon(android.R.drawable.btn_star_big_on)
  30. .setTitle("调查")
  31. .setMultiChoiceItems(choices,chsBool,multiClick)
  32. .setPositiveButton("Yes",onclick)
  33. .setNegativeButton("No",onclick).create();
  34. dialog.show();
  35. }
  36. });
  37. }
  38. /**
  39. *对话框复选框事件监听器
  40. */
  41. OnMultiChoiceClickListenermultiClick=newOnMultiChoiceClickListener(){
  42. @Override
  43. publicvoidonClick(DialogInterfacedialog,intwhich,booleanisChecked){
  44. Toast.makeText(Lesson_02_Dia.this,"第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();
  45. }
  46. };
  47. /**
  48. *对话框按钮点击事件监听器
  49. */
  50. OnClickListeneronclick=newOnClickListener(){
  51. @Override
  52. publicvoidonClick(DialogInterfacedialog,intwhich){
  53. switch(which){
  54. caseDialog.BUTTON_NEGATIVE:
  55. Toast.makeText(Lesson_02_Dia.this,"No..",
  56. Toast.LENGTH_LONG).show();
  57. break;
  58. caseDialog.BUTTON_NEUTRAL:
  59. Toast.makeText(Lesson_02_Dia.this,"Idon'tknow.",
  60. Toast.LENGTH_LONG).show();
  61. break;
  62. caseDialog.BUTTON_POSITIVE:
  63. Toast.makeText(Lesson_02_Dia.this,"Yes!!",
  64. Toast.LENGTH_LONG).show();
  65. break;
  66. }
  67. }
  68. };
  69. }

说明已经写在注释中了。

下面再介绍一种比较常用的式样,如图:

代码:

  1. @Override
  2. publicvoidonCreate(BundlesavedInstanceState){
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.main);
  5. Buttonbutton=(Button)findViewById(R.id.b01);
  6. button.setText("对话框");
  7. button.setOnClickListener(newButton.OnClickListener(){
  8. @Override
  9. publicvoidonClick(Viewv){
  10. //选项数组
  11. String[]choices={"新浪微博","校内","街旁"};
  12. //包含多个选项的对话框
  13. AlertDialogdialog=newAlertDialog.Builder(Lesson_02_Dia.this)
  14. .setIcon(android.R.drawable.btn_star)
  15. .setTitle("分享")
  16. .setItems(choices,onselect).create();
  17. dialog.show();
  18. }
  19. });
  20. }
  21. /**
  22. *选项的事件监听器
  23. */
  24. OnClickListeneronselect=newOnClickListener(){
  25. @Override
  26. publicvoidonClick(DialogInterfacedialog,intwhich){
  27. //TODOAuto-generatedmethodstub
  28. switch(which){
  29. case0:
  30. Toast.makeText(Lesson_02_Dia.this,"您选择了新浪微博.",Toast.LENGTH_SHORT).show();
  31. break;
  32. case1:
  33. Toast.makeText(Lesson_02_Dia.this,"您选择了校内",Toast.LENGTH_SHORT).show();
  34. break;
  35. case2:
  36. Toast.makeText(Lesson_02_Dia.this,"您选择了街旁",Toast.LENGTH_SHORT).show();
  37. break;
  38. }
  39. }
  40. };

好了,今天就写到这,改天写一下,如果在弹出框中做一个登陆界面。

继续补充...先上图...

页面login.xml: 示例写的比较简单,布局大家可以自己完善、修改。

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <TableLayout
  3. android:id="@+id/widget36"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. android:orientation="vertical"
  7. xmlns:android="http://schemas.android.com/apk/res/android"
  8. >
  9. <TextView
  10. android:id="@+id/widget37"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:text="用户名:"
  14. >
  15. </TextView>
  16. <EditText
  17. android:id="@+id/widget38"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text=""
  21. android:textSize="18sp"
  22. >
  23. </EditText>
  24. <TextView
  25. android:id="@+id/widget39"
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:text="密码:"
  29. >
  30. </TextView>
  31. <EditText
  32. android:id="@+id/widget40"
  33. android:layout_width="wrap_content"
  34. android:layout_height="wrap_content"
  35. android:text=""
  36. android:textSize="18sp"
  37. >
  38. </EditText>
  39. </TableLayout>

代码 : (也比较简单)

  1. LayoutInflaterfactory=LayoutInflater.from(Lesson_02_Dia.this);
  2. //获得自定义对话框
  3. Viewview=factory.inflate(R.layout.login,null);
  4. AlertDialogdialog02=newAlertDialog.Builder(Lesson_02_Dia.this)
  5. .setIcon(android.R.drawable.btn_star)
  6. .setTitle("登录")
  7. .setView(view)
  8. .setPositiveButton("Yes",onclick)
  9. .setNegativeButton("No",onclick).create();
  10. dialog02.show();

有问题欢迎大家交流。

分享到:
评论

相关推荐

    自定义 Android 对话框 (AlertDialog) 的实现

    在Android开发中,自定义对话框(AlertDialog)是常见的需求,它可以提供更加个性化的用户体验,让用户与应用进行更直观的交互。本教程将详细介绍如何在Android中实现一个完全自定义的AlertDialog,包括颜色、布局等...

    android之各种对话框AlertDialog及其子类

    AlertDialog是Android SDK中的一个核心对话框类,它提供了多种可定制化的对话框样式和功能。本文将深入探讨AlertDialog及其子类,并通过具体的代码示例来展示它们的应用。 首先,我们来看AlertDialog的基本用法。要...

    Android快速SDK(4)对话框AlertDialog

    "Android快速SDK(4)对话框AlertDialog"这一主题聚焦于如何在Android应用程序中有效地使用AlertDialog。 首先,AlertDialog是Android SDK提供的一种原生对话框组件,它具有比普通的Toast更丰富的交互性和更明确的...

    精美的对话框 AlertDialog 作者nifty

    总之,作者nifty的精美`AlertDialog`实现为Android开发者提供了一个强大且美观的对话框工具,可以帮助他们提升应用的用户体验。通过深入理解并利用这个库,开发者可以创造出更具吸引力的交互界面,使应用在众多竞品...

    Android对话框AlertDialog.Builder使用方法详解

    在Android开发中,`AlertDialog` 是一种常用的组件,用于向用户展示信息或获取用户输入。`AlertDialog.Builder` 是创建和定制`AlertDialog` 的便捷工具,它允许开发者通过链式调用来构建对话框。本文将详细介绍如何...

    具有交互功能的对话框AlertDialog

    实例创建了一个AlertDialog.Builder,添加了两个按钮用于跳转和取消,博文地址:http://blog.csdn.net/zhai56565/article/details/8671030

    Android 对话框(Dialog)样式大全以及简单实现

    Android 对话框的基本样式是 AlertDialog.Builder,它可以用来创建一个基本的对话框。基本对话框样式包括标题、信息内容和按钮。按钮可以是肯定、否定或中立按钮,点击按钮后可以执行相应的操作。 代码示例: ```...

    android AlertDialog对话框的类型集合

    这篇描述中提到的"android AlertDialog对话框的类型集合"是一个全面介绍和展示`AlertDialog`各种类型的资源,包含了丰富的示例代码,方便开发者直接运行和学习。 1. **普通对话框** 普通的`AlertDialog`是最基础的...

    Android 对话框 (一) 管理对话框

    本文将深入探讨如何管理和使用Android对话框,主要包括其基本概念、创建方式、自定义以及最佳实践。 ### 基本概念 对话框在Android中主要由`android.app.Dialog`类表示,它是`Activity`的一个弹出窗口,通常悬浮在...

    Android中显示AlertDialog对话框

    下面将详细介绍如何在Android应用中创建并显示一个`AlertDialog`对话框。 ### 创建AlertDialog #### 1. 导入必要的包 首先确保项目中已经导入了必要的包: ```java import android.app.AlertDialog; import ...

    Android对话框源码,十几种动画的对话框

    本资源提供了Android对话框的源码,包含十几种不同的动画效果,可以极大地丰富应用的用户体验。接下来,我们将深入探讨Android对话框的基础知识、自定义对话框以及各种动画效果的应用。 首先,Android系统提供了两...

    自定义Android对话框样式示例

    总结,自定义Android对话框是一个灵活的过程,允许开发者根据项目需求调整对话框的样式、内容和行为。通过创建自定义布局,设置主题,以及处理各种事件,我们可以打造出与应用风格一致且用户体验良好的对话框。在...

    Android源码——alertDialog对话框.zip

    在Android开发中,AlertDialog对话框是一种常见的用户交互方式,它用于向用户显示警告、确认信息或者获取用户输入。本文将深入探讨Android源码中的AlertDialog及其使用方法,旨在帮助开发者更好地理解和自定义对话框...

    ANDROID中自定义对话框AlertDialog使用示例

    在Android开发中,`AlertDialog`是系统提供的一种用于与用户交互的组件,它可以在应用程序界面弹出一个模态对话框,通常用来展示警告、询问或请求用户输入信息。`AlertDialog`的基本使用通常涉及构建对话框内容、...

    Android Studio —— AlertDialog(多选对话框)

    在Android应用开发中,`AlertDialog`是一个非常重要的组件,它用于显示一个对话框来与用户进行交互。在本文中,我们将深入探讨如何在Android Studio中使用`AlertDialog`创建多选对话框,以及相关的知识点。 首先,`...

    可自定义的对话框AlertDialog效果

    可自定义的对话框AlertDialog效果源码,源码mcustom-HerilyAlertDialog-master,完全custom的Android Dialog[HerilyAlertDialog],1.HerilyAlertDialog 是由Herily[虚拟名]研究android对话框源码后的结晶,继承自...

    Android 对话框基本应用详细教程

    一、Android对话框的基本类型 1. **AlertDialog**: 它是最常见的对话框类型,提供了标题、内容和一个或多个按钮。可以通过`AlertDialog.Builder`来创建,设置标题、消息和按钮。 2. **ProgressDialog**: 用于展示...

Global site tag (gtag.js) - Google Analytics