Android 中的对话框 dialog

对话框对于应用是必不可少的一个组件,在Android中也不例外,用于提示重要信息...

Android提供了丰富的对话框支持,它提供了4种常用的对话框形式:

  • AlertDialog:警告对话框,使用最广泛功能最丰富的一个对话框
  • ProgressDialog:进度条对话框,只是对进度条进行了简单的封装
  • DatePickerDialog:日期对话框
  • TimePickerDialog:时间对话框

这里简单介绍 AlertDialog 的使用方法:

activity_main 布局文件

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.dragon.android.alertdialog.MainActivity"> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="massage"
android:id="@+id/bt_msg"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="sure"
android:id="@+id/bt_sure"
android:layout_below="@+id/bt_msg"
android:layout_alignRight="@+id/bt_msg"
android:layout_alignEnd="@+id/bt_msg" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EditText"
android:id="@+id/bt_editText"
android:layout_below="@+id/bt_sure"
android:layout_alignLeft="@+id/bt_sure"
android:layout_alignStart="@+id/bt_sure" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="singlechoice"
android:id="@+id/bt_singleChoice"
android:layout_below="@+id/bt_editText"
android:layout_centerHorizontal="true" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="mutichoice"
android:id="@+id/bt_multiChoice"
android:layout_below="@+id/bt_singleChoice"
android:layout_centerHorizontal="true" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="imageview"
android:id="@+id/bt_imageView"
android:layout_below="@+id/bt_multiChoice"
android:layout_centerHorizontal="true" />
</RelativeLayout>

activity_main

MainActivity

 package com.dragon.android.alertdialog;

 import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView; public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
} private void initView() {
findViewById(R.id.bt_msg).setOnClickListener(this);
findViewById(R.id.bt_sure).setOnClickListener(this);
findViewById(R.id.bt_editText).setOnClickListener(this);
findViewById(R.id.bt_singleChoice).setOnClickListener(this);
findViewById(R.id.bt_multiChoice).setOnClickListener(this);
findViewById(R.id.bt_imageView).setOnClickListener(this);
} @Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
switch (v.getId()) {

case R.id.bt_msg:
builder
.setTitle("Title") // 设置标题
.setMessage("this is a massage") // 设置提示信息
.setPositiveButton("sure", null) // 参数1:按钮名;参数2:监听器
.show();
break;

case R.id.bt_sure:
builder
.setTitle("Sure")
.setMessage("Sure?")
.setPositiveButton("sure", null)
.setNegativeButton("cancel", null)
.show();
break;

case R.id.bt_editText:
builder
.setTitle("Please input")
.setView(new EditText(this)) // 此方法显示一个View
.setPositiveButton("sure", null)
.setNegativeButton("cancel", null)
.show();
break;

case R.id.bt_singleChoice:
builder
.setTitle("Please choice")
.setSingleChoiceItems(new String[]{"A", "B", "C"}, 0,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 单选框,点击一个则自动退出
dialog.dismiss();
}
}) // 参数1:选择框的选项数;参数2:选择的选项ID;参数3:监听器
.setNegativeButton("cancel", null)
.show();
break;

case R.id.bt_multiChoice:
builder
.setTitle("Please choice")
.setMultiChoiceItems(new String[]{"A", "B", "C"}, null, null) // 类同单选
.setPositiveButton("sure", null)
.setNegativeButton("cancel", null)
.show();
break;

case R.id.bt_imageView:
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.mipmap.ic_launcher); // 设置图片资源
builder
.setTitle("Image")
.setView(imageView) // 此方法显示一个View
.setPositiveButton("sure", null)
.show();
break;
}
}
}

Android之AlertDialog应用的更多相关文章

  1. Android之AlertDialog.Builder详解

    import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; ...

  2. 【Android】Android在AlertDialog使用大全

    package com.ceac.deng; import android.R.string; import android.support.v7.app.ActionBarActivity; imp ...

  3. [转]好文章:Android的AlertDialog详解

    refer:http://www.2cto.com/kf/201205/131876.html AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDial ...

  4. 【Android】Android中AlertDialog对话框的使用实例

    package com.ceac.deng; import android.R.string; import android.support.v7.app.ActionBarActivity; imp ...

  5. Android 自定义AlertDialog退出对话框

    Android 自定义AlertDialog退出对话框 转 https://blog.csdn.net/wkh11/article/details/53081634在项目中很多时候会出现点击返回键出现 ...

  6. 家庭记账本app进度之android中AlertDialog的相关应用以及对日期时间的相关操作(应用alertdialog使用的谈话框)

    对于AlertDialog的相关知识: 1.创建构造器AlertDialog.Builder的对象:    2.通过构造器对象调用setTitle.setMessage.setIcon等方法构造对话框 ...

  7. (原)android的alertdialog中加入edittext但是不弹出软键盘等问题的解决与原因

    摘要:alertdialog中加入edittext但是不弹出软键盘等问题网上有很多不管用的解决方案, 本文意在给出更有效的解决办法,并初步探究其原因 正文 在对话框中插入文本框是十分常见的需求 通常我 ...

  8. Android设置AlertDialog点击按钮对话框不关闭(转)

    (转自:http://blog.csdn.net/winson_jason/article/details/8485524) 当我们在用到Android alertDialog创建对话框 的时候,我们 ...

  9. Android:AlertDialog对话框

    1.简单的ALertDialog: Dialog alertDialog = new AlertDialog.Builder(this) .setTitle("标题") .setM ...

随机推荐

  1. MYSQL数据库日志和mysqlbinlog相关

    mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面介绍二进制日志的作用和使用方法. 1.二进 ...

  2. mysql 自动备份导出到sql

    创建一个sh文件 vi mysql_auto.sh写入如下代码 导出单个数据库 /www/wdlinux/mysql/bin/mysqldump -uroot -p123456 database &g ...

  3. Bootstrap <基础二十三>页面标题(Page Header)

    页面标题(Page Header)是个不错的功能,它会在网页标题四周添加适当的间距.当一个网页中有多个标题且每个标题之间需要添加一定的间距时,页面标题这个功能就显得特别有用.如需使用页面标题(Page ...

  4. #1000 A + B (hihoCoder)

    时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 求两个整数A+B的和 输入 输入包含多组数据.每组数据包含两个整数A(1 ≤ A ≤ 100)和B(1 ≤ A ≤ 100) ...

  5. Java特性-Collection和Map

    创建博客的目的主要帮助自己记忆和复习日常学到和用到的知识:或有纰漏请大家斧正,非常感谢! 之前面试,被问过一个问题:List和Set的区别. 主要区别很明显了,两者都是数组形式存在的,继承了Colle ...

  6. 黑马程序员——C语言基础 字符串

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)字符串 1>字符串是由多个字符组合在一起形成的 2>初始 ...

  7. vps推荐之DigitalOcean

    作为一个爱折腾的网站”程序猿“,我用过多家vps,由于一般支持paypal 月付, 所以基本上都会用两三个月,不行就换另一家. 1.Yard VPS 台湾人开的,有中文支持,貌似也支持支付宝付款,偶尔 ...

  8. break continue 区别 以及实例

    不论是MATLAB.c/c++.c#还是其他类型的编程语言,我们总是避免不了和for循环以及switch语句打交道,而对循环进行优化的时候,又总是避免不了用到break以及continue来控制循环, ...

  9. sql server 2012提示:评估期已过 的解决办法 附序列号

    sql server 2012提示评估期已过的解决方法: 第一步:进入SQL2012配置工具中的安装中心. 第二步:再进入左侧维护选项界面,然后选择选择版本升级. 第三步:进入输入产品密钥界面,输入相 ...

  10. 今天遇到的点击添加按钮button_click代码段无法执行的问题

    首先:本人小白一枚,刚入行,如有表述不当的地方,还请多多指教 网页界面如图: 当点击添加按钮后断点测试进入后台代码运行: 代码会先执行Page_Load页面,当加载完后Page_Load代码会跳转到m ...