11.Android之常用对话框AlertDialog学习

(1)首先我们写个简单的AlertDialog对话框,要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法,然后创建对话框可以设置对话框的属性,比如设置标题、图标、内容等等。

修改下MainActivity.java方法(Android Studio工具下):

 1 package com.example.administrator.dialog1;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.app.AlertDialog.Builder;
 6 import android.app.AlertDialog;
 7
 8 public class MainActivity extends Activity {
 9
10     @Override
11     protected void onCreate(Bundle savedInstanceState) {
12         super.onCreate(savedInstanceState);
13         setContentView(R.layout.activity_main);
14
15         //要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法
16         Builder alertdialog = new AlertDialog.Builder(this);
17         alertdialog.setTitle("简单对话框");                            //设置标题
18         alertdialog.setMessage("从前有个人,他很冷,最后他冷死了。");     //设置内容
19         alertdialog.setIcon(R.mipmap.ic_launcher);                  //设置图标
20         alertdialog.create();
21         alertdialog.show();
22     }
23
24
25 }

运行效果:

(2) 接下来我们来设置带按钮的AlertDialog,代码如下:

 1 package com.example.administrator.dialog1;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.app.AlertDialog.Builder;
 6 import android.app.AlertDialog;
 7 import android.content.DialogInterface;
 8
 9 public class MainActivity extends Activity {
10
11     @Override
12     protected void onCreate(Bundle savedInstanceState) {
13         super.onCreate(savedInstanceState);
14         setContentView(R.layout.activity_main);
15 //
16 //        //要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法
17 //        Builder alertdialog = new AlertDialog.Builder(this);
18 //        alertdialog.setTitle("简单对话框");                            //设置标题
19 //        alertdialog.setMessage("从前有个人,他很冷,最后他冷死了。");     //设置内容
20 //        alertdialog.setIcon(R.mipmap.ic_launcher);                  //设置图标
21 //        alertdialog.create();
22 //        alertdialog.show();
23
24         Builder dialog = new AlertDialog.Builder(this);
25         dialog.setTitle("确定删除?");
26         dialog.setMessage("您确定删除该条信息吗?");
27         dialog.setIcon(R.mipmap.ic_launcher);
28
29         //为“取消”按钮注册监听事件
30         dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
31             @Override
32             public void onClick(DialogInterface dialog, int which) {
33                 //...
34             }
35         });
36
37         //为“查看详情”按钮注册监听事件
38         dialog.setNeutralButton("查看详情", new DialogInterface.OnClickListener() {
39             @Override
40             public void onClick(DialogInterface dialog, int which) {
41                 //...
42             }
43         });
44
45         //为“确定”按钮注册监听事件
46         dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
47             @Override
48             public void onClick(DialogInterface dialog, int which) {
49                 //...
50             }
51         });
52
53         dialog.create();
54         dialog.show();
55     }
56
57
58 }

运行效果:

说明:setPositiveButton(),setNegativeButton(),setNeutralButton()方法分别用来设置确定按钮、取消按钮、中间按钮的一些属性,在Android2.3 以下平台中,三按钮的位置是相对固定的,分别置于最左侧,最右侧和居中,但在Android4.0以上平台下,setPositiveButton和setNegativeButton位置恰恰相反,分别置于最右侧和最左侧。

(3)带有单选按钮或者复选按钮的AlertDialog对话框

直接上代码:

 1 package com.example.administrator.dialog1;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.app.Dialog;
 6 import android.app.AlertDialog.Builder;
 7 import android.app.AlertDialog;
 8 import android.content.DialogInterface;
 9 import android.widget.Toast;
10
11 public class MainActivity extends Activity {
12
13     private int selectedCityIndex = 0;
14
15     @Override
16     protected void onCreate(Bundle savedInstanceState) {
17         super.onCreate(savedInstanceState);
18         setContentView(R.layout.activity_main);
19
20         //定义城市数组
21         final String[] arrayCity = new String[] { "北京", "上海", "广州", "深圳" };
22
23         //实例化AlertDialog对话框
24         Dialog alertDialog = new AlertDialog.Builder(this)
25                 .setTitle("你最喜欢哪个地方?")                 //设置标题
26                 .setIcon(R.mipmap.ic_launcher)                //设置图标
27                 // 设置对话框显示一个单选List,指定默认选中项,同时设置监听事件处理
28                 .setSingleChoiceItems(arrayCity, 0, new DialogInterface.OnClickListener() {
29
30                     @Override
31                     public void onClick(DialogInterface dialog, int which) {
32                         selectedCityIndex = which;               //选中项的索引保存到选中项变量
33                     }
34                 })
35                         //添加取消按钮并增加监听处理
36                 .setNegativeButton("取消", new DialogInterface.OnClickListener() {
37                     @Override
38                     public void onClick(DialogInterface dialog, int which) {
39                         // TODO Auto-generated method stub
40                     }
41                 })
42                         //添加确定按钮并增加监听处理
43                 .setPositiveButton("确认", new DialogInterface.OnClickListener() {
44                     @Override
45                     public void onClick(DialogInterface dialog, int which) {
46                         Toast.makeText(getApplication(), arrayCity[selectedCityIndex], Toast.LENGTH_SHORT).show();
47                     }
48                 })
49                 .create();
50         alertDialog.show();
51     }
52
53 }

说明:setSingleChoiceItems(CharSequence[] items, int checkedItem,final OnClickListener listener)方法来实现类似ListView的AlertDialog,第一个参数是要显示的数据的数组,第二个参数指定默认选中项,第三个参数设置监听处理事件。

运行效果:

     

时间: 2024-10-24 13:43:32

11.Android之常用对话框AlertDialog学习的相关文章

【转】Android详细的对话框AlertDialog.Builder使用方法

Android详细的对话框AlertDialog.Builder使用方法 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必

Android中的对话框AlertDialog使用技巧合集-转载

Android中的对话框AlertDialog使用技巧合集 文章来自:http://blog.csdn.net/blue6626/article/details/6641105 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧. 1.确定取消对话框 对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件. 我们使用AlerDialog 创建对话框 view

Android新手入门2016(11)--非阻塞对话框AlertDialog

写了这么久,看了这么多控件,好像都是静态的,一点交互都没有.这次要弄点弹框,活跃活跃. 这次继续用上一章的代码往下面写吧. 先看看图 还是前一章的九宫图,我把对话框绑定在第一个图标. 点击一下,可以看到如下: 再来看看代码吧 package com.fable.helloworld; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android

android中提示&对话框----AlertDialog

AlertDialog(对话框) 一.对话框的基本使用流程 step1:创建AlertDialog.Buider; step2:调用setIcon()设置图标,setTitle()或者setCustomerTitle设置标题 step3:设置对话框的内容setMessage()还有其他方式: step4:setPosition/Negative/NaturalButton设置:确定.取消.中立 step5:调用create()方法创建这个对象,在调用show()方法将对话框显示出来 二.几种常用

Android详细的对话框AlertDialog.Builder使用方法(转)

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢?     幸运的

Android课程---关于对话框的学习

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" a

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

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢?     幸运的

024 Android 自定义样式对话框(AlertDialog)

1.AlertDialog介绍 AlertDialog并不需要到布局文件中创建,而是在代码中通过构造器(AlertDialog.Builder)来构造标题.图标和按钮等内容的. 常规使用步骤(具体参见Android 开发博客中的024篇): (1)创建构造器AlertDialog.Builder的对象:(2)通过构造器的对象调用setTitle.setMessage等方法构造对话框的标题.信息和图标等内容:(3)根据需要,设置正面按钮.负面按钮和中立按钮:(4)调用create方法创建Alert

Android禁止按键关闭AlertDialog

在Android系统中,默认点击AlertDialog中的按键都会关闭该AlertDialog,但有些情况下我们并不希望使对话框关闭,或者希望使对话框在自己需要的时候再关闭. 例如我现在做的一个项目,通过AlertDialog读取用户输入的一个值,希望只有在判断值为正确范围内才关闭该对话框,否则对话框予以保留,并给以用户相应的提醒. 可以利用反射的机制来实现这一效果: 不关闭对话框: ? 1 2 3 4 5 6 7 8 9 10 // 使对话框无法关闭 try {     Field field