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

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

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

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

public boolean onKeyDown(int keyCode, KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
   dialog();
   }
   return false;
   }

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

创建dialog的方法代码如下:

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方法的代码如下:

new AlertDialog.Builder(this).setTitle("请输入").setIcon(
   android.R.drawable.ic_dialog_info).setView(
   new EditText(this)).setPositiveButton("确定", null)
   .setNegativeButton("取消", null).show();

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

创建dialog方法的代码如下:

new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(
   new String[] { "Item1", "Item2" }, null, null)
   .setPositiveButton("确定", null)
   .setNegativeButton("取消", null).show();

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

创建dialog方法的代码如下:

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的方法代码如下:

new AlertDialog.Builder(this).setTitle("列表框").setItems(
   new String[] { "Item1", "Item2" }, null).setNegativeButton(
   "确定", null).show();

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

dialog布局文件代码如下:

<?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方法的代码如下:

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

8.所有内容是一个自定义的布局

  首先自定义一个diaolog界面,然后写一个类继承自android.app.Dialog类,并且加载dialog界面,对其中的内容进行处理。这样的dialog会更灵活一些,不过写的代码也不少。

好了,以上8种Android dialog对话框的使用方法就介绍到这里了,基本都全了。

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

 

8种形式的Android Dialog使用举例的更多相关文章

  1. Android控件——7种形式的Android Dialog使用举例(转载)

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...

  2. Android Dialog使用举例

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...

  3. Android弹出Dialog使用举例

    Android详细的对话框AlertDialog.Builder使用方法 7种形式的Android Dialog使用举例 第30章.常见对话框之一AlertDialog(从零开始学Android)

  4. Android Dialog对话框的七种形式的使用

    参考资料:http://www.oschina.net/question/54100_32486 注:代码进行了整理 在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询 ...

  5. Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)

    QT通过三种形式提供了对线程的支持.它们分别是, 一.平台无关的线程类 二.线程安全的事件投递 三.跨线程的信号-槽连接. 这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势.多线 ...

  6. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  7. es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式

    es6 Object.assign   目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...

  8. Python中函数传递参数有四种形式

    Python中函数传递参数有四种形式 fun1(a,b,c) fun2(a=1,b=2,c=3) fun3(*args) fun4(**kargs) 四种中最常见是前两种,基本上一般点的教程都会涉及, ...

  9. 基于 Scrapy-redis 两种形式的分布式爬虫

    基于 Scrapy-redis 两种形式的分布式爬虫 .caret, .dropup > .btn > .caret { border-top-color: #000 !important ...

随机推荐

  1. 笔记51 Mybatis快速入门(二)

    Mybatis的CRUD 1.修改配置文件Category.xml,提供CRUD对应的sql语句. <?xml version="1.0" encoding="UT ...

  2. PHP算法之最长公共前缀

    ### 解题思路 方法太笨重后期优化 循环比较 循环长度利用max(最长字符串的循环) 不满住条件的截取 ### 代码 ```php class Solution {     /**      * @ ...

  3. ES6 简化对象写法

    简化的对象写法 * 省略同名的属性值 * 省略方法的function <!DOCTYPE html> <html lang="en"> <head&g ...

  4. IDEA使用maven插件打jar包流程

    idea使用maven插件打jar包步骤以及遇到的问题 idea自带了maven工具,idea右边点击maven选项: 一.在pom中添加插件,直接复制就好,如下选项 <plugin> & ...

  5. 使用 SpringBoot 配置发送邮件功能

    1.使用 SpringBoot 配置发送邮件功能 项目总体结构 用户表设计 SET FOREIGN_KEY_CHECKS=0; CREATE DATABASE sample; USE sample; ...

  6. R语言 基本语法

    R语言基本语法 我们将开始学习R语言编程,首先编写一个"你好,世界! 的程序. 根据需要,您可以在R语言命令提示符处编程,也可以使用R语言脚本文件编写程序. 让我们逐个体验不同之处. 命令提 ...

  7. JavaWeb学习篇之----Jsp详解

    今天我们来看一下Jsp的相关知识,首先来看看一下Jsp的相关定义: 简介: JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术 ...

  8. CF540D Bad Luck Island(期望dp)

    传送门 解题思路 比较容易的一道期望\(dp\),设\(f[i][j][k]\)表示石头\(i\)个,剪刀\(j\)个,步子\(l\)个.然后转移的时候用组合数算一下就好了. 代码 #include& ...

  9. NOIp2018集训test-9-8(pm) (联考一day2)

    把T1题读错了,想了一个多小时发现不可做.然后打了t2,常数不优秀.然后去打t3,lct,结果打挂爆0了. 然后今天就爆炸了. 如果这是noip我今年就可以直接回去学常规了.学常规多好,多开心. 今天 ...

  10. var 更明确地表示一个变量被设置为零值

    创建一个变量并被初始化其为零值,习惯使用关键字var.这种做法是为了更明确地表示一个变量被设置为零值. 如果变量被初始化为某个非零值,就配合结构字面量和短变量操作符来创建变量. 零值 数值类型:0 字 ...