在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. zeromq protobuf例子

    https://github.com/AifiHenryMa/zeromq_protocolbuffer_demo https://github.com/protocolbuffers/protobu ...

  2. nodejs 模板引擎ejs的简单使用(3)

    1.ejs <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...

  3. Nginx的动静分离

    Nginx的动静分离 在之前我们的负载均衡中,我们再jsp中设置了一个背景,这是一个静态资源,Tomcat处理静态资源的效率并没有Nginx高,我们可以通过动静分离将静态资源和动态资源分割开来,Tom ...

  4. 笨办法学Python记录--习题12-14 主要是pydoc用法,raw_input,argv

    20140413 -- 习题12 - 14 1. pydoc在windows的用法,必须进入到python安装目录,执行Python -m pydoc raw_input; 网上给出了一个好玩的,不过 ...

  5. csp-s模拟测试96

    csp-s模拟测试96 $T1$一眼慢速乘,$T2$稍证一手最优性尝试用神奇数据结构优化,无果,弃.$T3$暴力+信仰. 100 03:16:38 95 03:16:56 35 03:17:10 23 ...

  6. 奇思妙想:利用野指针和lower_bound()/upper_bound()函数实现整数二分

    众所周知,c++的STL中提供了三个二分查找函数,binary_search(),lower_bound(),upper_bound(),功能分别是找某值是否在数组中出现,找到数组中第一个大于等于某值 ...

  7. 微信-小程序-开发文档-服务端-模板消息:templateMessage.getTemplateLibraryById

    ylbtech-微信-小程序-开发文档-服务端-模板消息:templateMessage.getTemplateLibraryById 1.返回顶部 1. templateMessage.getTem ...

  8. 分布式存储glusterfs

    什么是glusterfs? Glusterfs是一个开源分布式文件系统,具有强大的横向扩展能力,可支持数PB存储容量的数干客户端,通过网络互联成一个并行的网络文件系统.具有可扩展性.高性能.高可用性等 ...

  9. Day 10:函数全局变量和局部变量及函数嵌套

    全局变量:在所有函数之外赋值的变量,是全局变量. 局部变量:在函数内的变量是,局部变量 一个函数被调用时,就创建了一个局部作用域.在这个函数内赋值的所有变量,存在于该局部作用域内.该函数返回时,这个局 ...

  10. python 15 文件操作(一)

    转自 http://www.cnblogs.com/BeginMan/p/3166644.html 一.文件对象 我理解的文件对象就是一个接口,通过这个接口对文件进行相关操作. <Python ...