`
endual
  • 浏览: 3579049 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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. new AlertDialog.Builder(Lesson_01_Pic.this).setTitle("提示标题").setMessage("这是提示内容").show();   
 

 

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

 

 

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

 

 

代码:

 

  1. new AlertDialog.Builder(Lesson_01_Pic.this)  
  2.          .setTitle("这是标题")  
  3.         .setMessage("这是提示内容")   
  4.         .setPositiveButton("确定",   
  5.         new DialogInterface.OnClickListener(){  
  6.                   public void onClick(DialogInterface dialoginterface, int i){   
  7.                                  //按钮事件   
  8.                             Toast.makeText(Lesson_01_Pic.this"确定",Toast.LENGTH_LONG).show();  
  9.                               }   
  10.                       }).show();   
 

 

 

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

 

 

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

 

代码:

 

  1. package com.yfz;  
  2. import android.app.Activity;  
  3. import android.app.AlertDialog;  
  4. import android.app.Dialog;  
  5. import android.content.DialogInterface;  
  6. import android.content.DialogInterface.OnClickListener;  
  7. import android.content.DialogInterface.OnMultiChoiceClickListener;  
  8. import android.os.Bundle;  
  9. import android.view.View;  
  10. import android.widget.Button;  
  11. import android.widget.Toast;  
  12. public class Lesson_02_Dia extends Activity {  
  13.     /** Called when the activity is first created. */  
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.main);  
  18.           
  19.         Button button = (Button)findViewById(R.id.b01);  
  20.         button.setText("对话框");  
  21.         button.setOnClickListener(new Button.OnClickListener(){  
  22.             @Override  
  23.             public void onClick(View v) {  
  24.                 //选项数组  
  25.                 String[] choices={"Facebook","Twitter"};  
  26.                 //Check判断数组,与选项对应  
  27.                 boolean[] chsBool = {true,false};  
  28.                  //包含多个选项及复选框的对话框  
  29.                 AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)  
  30.                          .setIcon(android.R.drawable.btn_star_big_on)  
  31.                          .setTitle("调查")  
  32.                          .setMultiChoiceItems(choices, chsBool, multiClick)  
  33.                          .setPositiveButton("Yes", onclick)  
  34.                          .setNegativeButton("No",  onclick).create();  
  35.                 dialog.show();  
  36.             }  
  37.               
  38.         });  
  39.     }  
  40.       
  41.     /** 
  42.      * 对话框复选框事件监听器 
  43.      */  
  44.     OnMultiChoiceClickListener multiClick = new OnMultiChoiceClickListener(){  
  45.         @Override  
  46.         public void onClick(DialogInterface dialog, int which, boolean isChecked) {  
  47.             Toast.makeText(Lesson_02_Dia.this"第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();  
  48.         }  
  49.           
  50.     };  
  51.       
  52.     /** 
  53.      * 对话框按钮点击事件监听器 
  54.      */  
  55.     OnClickListener onclick = new OnClickListener() {  
  56.         @Override  
  57.         public void onClick(DialogInterface dialog, int which) {  
  58.             switch (which) {  
  59.                 case Dialog.BUTTON_NEGATIVE:  
  60.                     Toast.makeText(Lesson_02_Dia.this"No..",  
  61.                             Toast.LENGTH_LONG).show();  
  62.                     break;  
  63.                 case Dialog.BUTTON_NEUTRAL:  
  64.                     Toast.makeText(Lesson_02_Dia.this"I don't know.",  
  65.                             Toast.LENGTH_LONG).show();  
  66.                     break;  
  67.                 case Dialog.BUTTON_POSITIVE:  
  68.                     Toast.makeText(Lesson_02_Dia.this"Yes!!",  
  69.                             Toast.LENGTH_LONG).show();  
  70.                     break;  
  71.             }  
  72.         }  
  73.     };  
  74. }  
 

 

 

说明已经写在注释中了。

 

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

 

代码:

 

  1.    @Override  
  2.    public void onCreate(Bundle savedInstanceState) {  
  3.        super.onCreate(savedInstanceState);  
  4.        setContentView(R.layout.main);  
  5.          
  6.        Button button = (Button)findViewById(R.id.b01);  
  7.        button.setText("对话框");  
  8.        button.setOnClickListener(new Button.OnClickListener(){  
  9.         @Override  
  10.         public void onClick(View v) {  
  11.             //选项数组  
  12.             String[] choices={"新浪微博","校内","街旁"};  
  13.                  //包含多个选项的对话框  
  14.             AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)  
  15.                      .setIcon(android.R.drawable.btn_star)  
  16.                      .setTitle("分享")  
  17.                      .setItems(choices, onselect).create();  
  18.             dialog.show();  
  19.         }  
  20.        });  
  21.    }  
  22.      
  23.      
  24. /** 
  25.  * 选项的事件监听器 
  26.  */  
  27.    OnClickListener onselect = new OnClickListener() {  
  28.     @Override  
  29.     public void onClick(DialogInterface dialog, int which) {  
  30.         // TODO Auto-generated method stub  
  31.         switch (which) {  
  32.         case 0:  
  33.             Toast.makeText(Lesson_02_Dia.this"您选择了新浪微博.",Toast.LENGTH_SHORT).show();  
  34.             break;  
  35.         case 1:  
  36.             Toast.makeText(Lesson_02_Dia.this"您选择了校内",Toast.LENGTH_SHORT).show();  
  37.             break;  
  38.         case 2:  
  39.             Toast.makeText(Lesson_02_Dia.this"您选择了街旁",Toast.LENGTH_SHORT).show();  
  40.             break;  
  41.     }  
  42.     }  
  43.       
  44.    };  
 

 

 

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

 

 

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

 

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

 

  1. <?xml version="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. LayoutInflater factory = LayoutInflater.from(Lesson_02_Dia.this);  
  2. //获得自定义对话框  
  3. View view = factory.inflate(R.layout.login, null);  
  4.   
  5. AlertDialog dialog02 = new AlertDialog.Builder(Lesson_02_Dia.this)  
  6.      .setIcon(android.R.drawable.btn_star)  
  7.      .setTitle("登录")  
  8.        .setView(view)  
  9.        .setPositiveButton("Yes", onclick)  
  10.        .setNegativeButton("No",  onclick).create();  
  11. dialog02.show();  本讲介绍一下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. new AlertDialog.Builder(Lesson_01_Pic.this).setTitle("提示标题").setMessage("这是提示内容").show();   
     

     

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

     

     

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

     

     

    代码:

     

    1. new AlertDialog.Builder(Lesson_01_Pic.this)  
    2.          .setTitle("这是标题")  
    3.         .setMessage("这是提示内容")   
    4.         .setPositiveButton("确定",   
    5.         new DialogInterface.OnClickListener(){  
    6.                   public void onClick(DialogInterface dialoginterface, int i){   
    7.                                  //按钮事件   
    8.                             Toast.makeText(Lesson_01_Pic.this"确定",Toast.LENGTH_LONG).show();  
    9.                               }   
    10.                       }).show();   
     

     

     

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

     

     

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

     

    代码:

     

    1. package com.yfz;  
    2. import android.app.Activity;  
    3. import android.app.AlertDialog;  
    4. import android.app.Dialog;  
    5. import android.content.DialogInterface;  
    6. import android.content.DialogInterface.OnClickListener;  
    7. import android.content.DialogInterface.OnMultiChoiceClickListener;  
    8. import android.os.Bundle;  
    9. import android.view.View;  
    10. import android.widget.Button;  
    11. import android.widget.Toast;  
    12. public class Lesson_02_Dia extends Activity {  
    13.     /** Called when the activity is first created. */  
    14.     @Override  
    15.     public void onCreate(Bundle savedInstanceState) {  
    16.         super.onCreate(savedInstanceState);  
    17.         setContentView(R.layout.main);  
    18.           
    19.         Button button = (Button)findViewById(R.id.b01);  
    20.         button.setText("对话框");  
    21.         button.setOnClickListener(new Button.OnClickListener(){  
    22.             @Override  
    23.             public void onClick(View v) {  
    24.                 //选项数组  
    25.                 String[] choices={"Facebook","Twitter"};  
    26.                 //Check判断数组,与选项对应  
    27.                 boolean[] chsBool = {true,false};  
    28.                  //包含多个选项及复选框的对话框  
    29.                 AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)  
    30.                          .setIcon(android.R.drawable.btn_star_big_on)  
    31.                          .setTitle("调查")  
    32.                          .setMultiChoiceItems(choices, chsBool, multiClick)  
    33.                          .setPositiveButton("Yes", onclick)  
    34.                          .setNegativeButton("No",  onclick).create();  
    35.                 dialog.show();  
    36.             }  
    37.               
    38.         });  
    39.     }  
    40.       
    41.     /** 
    42.      * 对话框复选框事件监听器 
    43.      */  
    44.     OnMultiChoiceClickListener multiClick = new OnMultiChoiceClickListener(){  
    45.         @Override  
    46.         public void onClick(DialogInterface dialog, int which, boolean isChecked) {  
    47.             Toast.makeText(Lesson_02_Dia.this"第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();  
    48.         }  
    49.           
    50.     };  
    51.       
    52.     /** 
    53.      * 对话框按钮点击事件监听器 
    54.      */  
    55.     OnClickListener onclick = new OnClickListener() {  
    56.         @Override  
    57.         public void onClick(DialogInterface dialog, int which) {  
    58.             switch (which) {  
    59.                 case Dialog.BUTTON_NEGATIVE:  
    60.                     Toast.makeText(Lesson_02_Dia.this"No..",  
    61.                             Toast.LENGTH_LONG).show();  
    62.                     break;  
    63.                 case Dialog.BUTTON_NEUTRAL:  
    64.                     Toast.makeText(Lesson_02_Dia.this"I don't know.",  
    65.                             Toast.LENGTH_LONG).show();  
    66.                     break;  
    67.                 case Dialog.BUTTON_POSITIVE:  
    68.                     Toast.makeText(Lesson_02_Dia.this"Yes!!",  
    69.                             Toast.LENGTH_LONG).show();  
    70.                     break;  
    71.             }  
    72.         }  
    73.     };  
    74. }  
     

     

     

    说明已经写在注释中了。

     

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

     

    代码:

     

    1.    @Override  
    2.    public void onCreate(Bundle savedInstanceState) {  
    3.        super.onCreate(savedInstanceState);  
    4.        setContentView(R.layout.main);  
    5.          
    6.        Button button = (Button)findViewById(R.id.b01);  
    7.        button.setText("对话框");  
    8.        button.setOnClickListener(new Button.OnClickListener(){  
    9.         @Override  
    10.         public void onClick(View v) {  
    11.             //选项数组  
    12.             String[] choices={"新浪微博","校内","街旁"};  
    13.                  //包含多个选项的对话框  
    14.             AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)  
    15.                      .setIcon(android.R.drawable.btn_star)  
    16.                      .setTitle("分享")  
    17.                      .setItems(choices, onselect).create();  
    18.             dialog.show();  
    19.         }  
    20.        });  
    21.    }  
    22.      
    23.      
    24. /** 
    25.  * 选项的事件监听器 
    26.  */  
    27.    OnClickListener onselect = new OnClickListener() {  
    28.     @Override  
    29.     public void onClick(DialogInterface dialog, int which) {  
    30.         // TODO Auto-generated method stub  
    31.         switch (which) {  
    32.         case 0:  
    33.             Toast.makeText(Lesson_02_Dia.this"您选择了新浪微博.",Toast.LENGTH_SHORT).show();  
    34.             break;  
    35.         case 1:  
    36.             Toast.makeText(Lesson_02_Dia.this"您选择了校内",Toast.LENGTH_SHORT).show();  
    37.             break;  
    38.         case 2:  
    39.             Toast.makeText(Lesson_02_Dia.this"您选择了街旁",Toast.LENGTH_SHORT).show();  
    40.             break;  
    41.     }  
    42.     }  
    43.       
    44.    };  
     

     

     

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

     

     

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

     

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

     

    1. <?xml version="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. LayoutInflater factory = LayoutInflater.from(Lesson_02_Dia.this);  
    2. //获得自定义对话框  
    3. View view = factory.inflate(R.layout.login, null);  
    4.   
    5. AlertDialog dialog02 = new AlertDialog.Builder(Lesson_02_Dia.this)  
    6.      .setIcon(android.R.drawable.btn_star)  
    7.      .setTitle("登录")  
    8.        .setView(view)  
    9.        .setPositiveButton("Yes", onclick)  
    10.        .setNegativeButton("No",  onclick).create();  
    11. dialog02.show();  

     

 

分享到:
评论

相关推荐

    【Android】对话框 AlertDialog

    在Android开发中,`AlertDialog`是用户界面中的一个重要组件,用于与用户进行交互,通常用于显示警告、确认信息或者提供用户选择。以下是对`AlertDialog`的详细解释和使用方法: `AlertDialog`通常通过`AlertDialog...

    自定义 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