[转]Dialog

在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助。

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

创建dialog对话框方法代码如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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)方法中调用此方法

?


1

2

3

4

5

6

public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {

     dialog();

    }

    return false;

   }

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

创建dialog的方法代码如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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类型

创建dialog方法的代码如下:

?


1

2

3

4

new AlertDialog.Builder(this).setTitle("请输入").setIcon(

       android.R.drawable.ic_dialog_info).setView(

       new EditText(this)).setPositiveButton("确定", null)

       .setNegativeButton("取消", null).show();

4.信息内容是一组单选框

创建dialog方法的代码如下:

?


1

2

3

4

new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(

       new String[] { "Item1", "Item2" }, null, null)

       .setPositiveButton("确定", null)

       .setNegativeButton("取消", null).show();

5.信息内容是一组多选框

创建dialog方法的代码如下:

?


1

2

3

4

5

6

7

8

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.信息内容是一组简单列表项

创建dialog的方法代码如下:

?


1

2

3

new AlertDialog.Builder(this).setTitle("列表框").setItems(

       new String[] { "Item1", "Item2" }, null).setNegativeButton(

       "确定", null).show();

7.信息内容是一个自定义的布局

dialog布局文件代码如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

<?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>

创建dialog方法的代码如下:

?


1

2

3

4

5

6

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

好了,以上7种Android dialog对话框的使用方法就介绍到这里了,基本都全了,如果大家在android开发过程中遇到dialog的时候就可以拿出来看看。

另外注,本文参考文章: 
http://android.tgbus.com/Android/tutorial/201107/359812.shtml

时间: 2024-08-30 12:55:19

[转]Dialog的相关文章

从零开始学android -- dialog

先看个效果图 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match

用dialog在前台实现一个简单的UI对话框

<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>对话框部件(Dialog Widget)演示</title> <link rel="stylesheet" href="//apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.m

android 2.x上Dialog特定情况导致无法dismiss的bug

近期在做一个简单的对话框框架,作用不过做出一个显示效果在android 2.x到android 4.x上均类似的对话框. 思路比較简单,就是使用装饰模式包裹Dialog,暴露的接口调用时会自己主动完毕一些设置 可是遇到一个特别诡异的问题,在android 2.x上的Dialog对话框无法被dismiss,仅仅要弹出来界面就卡死,强行使用eclipse又一次run的话会导致android设备黑屏无响应,假设是模拟器,则直接崩溃,看到启动画面.并且这个还不是ANR错误. 后来通过删减代码找到了问题的

weui dialog 效果

切记:weui dialog 的样式是在weui.css,而不是在weui.min.css HTML: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0" /> <

Android 对话框 Dialog

对话框 Dialog 什么是对话框 对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息, 或显示某种状态.如 :  显示进度条对话框, 退出提示. 对话框的特点: 1, 当前界面弹出的小窗口. 2, 用户要与它进行交互, 可以接收用户输入的信息, 也可以反馈信息给用户. 常用对话框: 1, 普通对话框 AlertDialog 2, 进度条对话框  ProgressDialog 3, 日期对话框    DatePickerDialog 4, 时间对话框

Android 弹出对话框Dialog充满屏幕宽度

final View view = LayoutInflater.from(context).inflate(layoutId, null); final Dialog dialog = new Dialog(context, R.style.style_dialog); dialog.setContentView(view); dialog.show(); Window window = dialog.getWindow(); window.setGravity(Gravity.BOTTOM)

Android 自定义Dialog类,并在Activity中实现按钮监听。

实际开发中,经常会用到Dialog,比如退出时候会弹出是否退出,或者还有一些编辑框也会用Dialog实现,效果图如下: 开发中遇到的问题无非在于如果在Activity中监听这个Dialog中实现的按钮,Dialog类如下,在MyDialog这个类中实现了一个LeaveMyDialogListener接口,用来实现onclick的点击事件: package com.Ieasy.Tool; import com.Ieasy.ieasyware.R; import android.app.Dialog

bootstrap中dialog水平垂直居中

方法一: HTML: <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">     Launch demo modal </button> <!-- Modal --> <div class="modal fade" id=&q

jquery easyui 调用dialog的两种方式

1. <div class="easyui-dialog" id="dd" title="My Dialog" style="width:400px;height:200px;"> Dialog Content. helloWord </div> 2. <script type="text/javascript"> $(function(){ $('#dd').dialo

App更新之dialog数字进度条

App更新之dialog数字进度条 前言:现在一般的Android软件都是需要不断更新的,当你打开某个app的时候,如果有新的版本,它会提示你有新版本需要更新.当有更新时,会弹出一个提示框,点击下载,则在通知来创建一个数字进度条进行下载,下载成功后才到安装界面. 效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及知识: 1.Handler机制 2.自定义控件+Canvas绘画 3.自定义dialog 部分代码: public class NumberProg