`
Sunny_Ya
  • 浏览: 14933 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Android Dialog用法总结

阅读更多
一、AlertDialog.Builder
Android中的alertDialog的创建一般是通过其内嵌类AlertDialog.Builder来实现的。所以首先浏览一下这个builder所提供的方法:

setTitle():给对话框设置title.

setIcon():给对话框设置图标。

setMessage():设置对话框的提示信息

setItems():设置对话框要显示的一个list,一般用于要显示几个命令时

setSingleChoiceItems():设置对话框显示一个单选的List

setMultiChoiceItems():用来设置对话框显示一系列的复选框。

setPositiveButton():给对话框添加”Yes”按钮。

setNegativeButton():给对话框添加”No”按钮。

二、常见对话框:
在了解完这几个常用的方法之后,看一个小例子,创建一个用来提示的对话框:




Dialog dialog = new AlertDialog.Builder(AlertDialogSamples.this)
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle(“title”)
                .setMessage(“这里是提示信息语句”)
                .setPositiveButton(“Ok”, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
   
                        /* User clicked OK so do some stuff */
                    }
                })
                .setNeutralButton(“Cancel”, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                        /* User clicked Something so do some stuff */
                    }
                })
                .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                        /* User clicked Cancel so do some stuff */
                    }
                })
                .create();
dialog.show();//如果要显示对话框,一定要加上这句





另外在我的以前的一篇博客中的代码中介绍了如何创建一个包含single choice或者command list的对话框,具体请参考这里:http://blog.chinaunix.net/u/20947/showart_1962223.html

三、包含定制view的对话框:
很多时候,我们需要在对话框中显示一个特定的view,比如说用户登录对话框,就需要显示要用户输入用户名和密码的editBox等。

要想让对话框显示一个view,我们就要用到AlertDialog.Builder的setView(View view)方法来,可以看到该方法的参数是一个view,所以我们就需要先取得这个view,这个时候我们还要用到一个新的class,那就是LayoutFlater,它的作用就是将一个layout 的xml文件转化成一个view实例。

最后,还是用一个实例来演示一下如何在对话框中将定制的view作为其内容,该程序用来演示如何通过点击一个按钮来调用一个用来显示登陆的对话框界面,如图:


Step 1: main.xml



http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    android:id="@+id/teBtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">





Step 2: text_entry_dialog.xml



http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
   
        android:id="@+id/username_view"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="Username"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium" />
           
   
        android:id="@+id/username_edit"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:scrollHorizontally="true"
        android:autoText="false"
        android:capitalize="none"
        android:gravity="fill_horizontal"
        android:textAppearance="?android:attr/textAppearanceMedium" />
   
        android:id="@+id/password_view"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="Password"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium" />
           
   
        android:id="@+id/password_edit"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:scrollHorizontally="true"
        android:autoText="false"
        android:capitalize="none"
        android:gravity="fill_horizontal"
        android:password="true"
        android:textAppearance="?android:attr/textAppearanceMedium" />


Step 3: code

package com.zx.te;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class TextEntryDialogTest extends Activity {
    Button btnTEDlg;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        btnTEDlg = (Button)findViewById(R.id.teBtn);
        btnTEDlg.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                LayoutInflater factory = LayoutInflater.from(TextEntryDialogTest.this);
                final View textEntryView = factory.inflate(R.layout.text_entry_dialog, null);
                AlertDialog dlg = new AlertDialog.Builder(TextEntryDialogTest.this)
                .setTitle("User Login")
                .setView(textEntryView)
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
   
                        /* User clicked OK so do some stuff */
                    }
                })
                .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                        /* User clicked cancel so do some stuff */
                    }
                })
                .create();
                dlg.show();
            }
        });
    }
}

分享到:
评论

相关推荐

    AndroidDialog用法总结.pdf

    以上内容涵盖了Android中基本的Dialog使用方法,包括创建带有不同选项的对话框以及包含自定义视图的对话框。通过这些方法,开发者可以根据需求构建各种交互场景,提供良好的用户体验。在实际项目中,还可以根据需要...

    android dialog基本用法

    总结,Android Dialog的基本用法涵盖了多种场景,开发者可以根据需求灵活选择或组合使用。通过学习和实践,我们可以创建出满足应用需求的对话框,提升用户体验。在实际项目中,还可以结合动画、过渡效果等进一步优化...

    Android Dialog与软键盘的正确打开方式

    首先,让我们了解Android Dialog的基本用法。Dialog是基于Activity的,通常用于显示一些额外信息或获取用户输入。创建一个自定义Dialog通常涉及以下步骤: 1. 创建一个继承自`AppCompatDialogFragment`的类,重写`...

    Android Dialog中加载GIF

    Glide的使用方法简单,性能优越,是Android开发者常用的选择。 要实现在Dialog中加载GIF,我们需要以下步骤: 1. **添加依赖**:在项目的build.gradle文件(app模块)中添加Glide的依赖。确保你的build.gradle文件...

    Android Dialog全屏显示、动画显示

    在Android开发中,自定义Dialog是一种常见的用户交互方式,它能提供更为丰富的界面和功能,以满足特定场景下的需求。本教程将详细讲解如何创建一个全屏显示且带有动画效果的自定义Dialog,并结合相机和图片选择的...

    Android Dialog更改样式及显示位置

    2. 使用第三方库:例如`androidx.core.widget.TintEditText`库,它提供了一种更灵活的方式来控制Dialog的位置。 在压缩包文件`MyDialog`中,可能包含了一个示例项目,展示了如何实现上述自定义Dialog样式和位置的...

    Android Dialog设置透明背景以及位置

    在Android开发中,Dialog是一种常见的用户交互组件,用于在主线程中显示临时信息或进行简单的操作选择。在设计用户界面时,有时我们可能希望Dialog具有透明背景或者可以自定义其显示位置,以达到更佳的视觉效果。本...

    安卓Dialog对话框相关-androiddialog总结Dialog整理.rar

    本资源“安卓Dialog对话框相关-androiddialog总结Dialog整理.rar”提供了关于Android Dialog的总结和示例,虽然不能确保所有代码都能直接运行,但它可以作为学习和参考的宝贵资料。 首先,我们来看Dialog的基本用法...

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

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

    Android dialog显示位置

    总结一下,自定义Android Dialog的位置主要涉及到以下几个步骤: 1. 获取Dialog的Window对象。 2. 设置Gravity,或者使用LayoutParams调整位置和大小。 3. 考虑屏幕尺寸和设备差异,以实现跨设备兼容性。 4. 在必要...

    android dialog输入框获取数据

    3. **理解基本概念**:熟悉Android中Dialog的基本用法,了解LayoutInflater的作用及如何使用findViewById方法获取控件引用。 #### 三、实现步骤 接下来,我们将按照以下步骤来实现带有输入框的Dialog,并从中获取...

    Android dialog单选、多选弹窗

    在标题"Android dialog单选、多选弹窗"中,我们主要关注的是两种类型的Dialog:单选对话框(Radio Button Dialog)和多选对话框(Checkbox Dialog),以及可能涉及到的PopWindow窗口。 1. **单选对话框**: 单选...

    Android Dialog各种实现

    通过阅读和理解这个示例,开发者可以更好地掌握Android Dialog的使用方法。 5. 注意事项: - 在主线程中创建和显示Dialog,否则可能会导致ANR(Application Not Responding)错误。 - 对于长时间运行的任务,应该...

    Android Dialog使用详解

    在本文中,我们将深入探讨如何在Android应用中有效地使用Dialog。 首先,理解Dialog的基本概念。Dialog通常包含一个标题(title)、内容(content)和一组按钮(如“确定”、“取消”)。它们可以是模态(阻塞用户...

    android dialog嵌套ListView

    在Android开发中,有时我们需要创建一个对话框(Dialog)来展示一些信息或者提供用户交互,例如选择、设置等。在这种情况下,如果对话框中的内容需要包含列表数据,我们就会使用到`Dialog`嵌套`ListView`的技术。这...

    android dialog向上弹效果

    总之,"android dialog向上弹效果"是通过Android的动画系统实现的,可以使用内置的动画类或者自定义XML动画资源。结合自定义Dialog和适当的布局设计,可以创建出具有专业水准和独特风格的Dialog动画效果。在实际开发...

    Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)

    总结起来,这个示例展示了如何在Android应用中创建一个具有多选功能的自定义Dialog,通过Dialog、ListView和CheckBox的组合实现用户交互。这种功能在很多场景下都很实用,比如选择联系人、文件或者其他任何需要用户...

    Android 控制关闭Dialog

    在Android开发中,Dialog是一种常见的用户交互元素,用于在用户界面中显示临时信息或进行简单的交互操作。通常,当我们使用AlertDialog构建一个对话框时,它的默认行为是在用户点击按钮(如"确定"或"取消")后自动...

    Android中用Dialog来做使用引导/新手引导页面

    总结,通过自定义Dialog实现Android应用的新手引导页面,不仅可以提高用户体验,还能让新功能的介绍更具针对性。关键步骤包括创建引导布局、自定义Dialog类、设置高亮效果、处理显示和隐藏逻辑以及触摸事件。这样,...

    Android-dialog库可以在任意类内调用子线程或ui线程内均可显示

    库的使用方法通常包括以下步骤: 1. 引入库:在项目的build.gradle文件中添加对应的依赖,比如对于Android-dialog库,可能是通过Maven或Gradle仓库获取。 2. 创建Dialog实例:使用库提供的类,如`CustomDialog`,...

Global site tag (gtag.js) - Google Analytics