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. href链接的地址

    tencent://message/?uin=QQ号. 链接一个弹出框.指向一个QQ号.

  2. Android中的Context

    Context用来访问全局信息的接口,比如影城程序的资源.一些常用的组件都是继承自Context,目的就是方便的访问资源,比如Activity, Service.... 从Context访问本组件的资 ...

  3. java开发连接Oracle 12c采用PDB遇到问题记录

    今天初次使用java连接Oracle 12c,遇到各种问题,为方便后续查询,在汇总了问题记录及解决方案如下. ORA-28040: No matching authentication protoco ...

  4. vultr vps服务器存在的7个优势及选择原因

    原本准备在第一篇文章的时候完整的新注册账户的,但是考虑到对于这款VPS主机的了解,还是先整理这篇关于网络上和我自己在使用vultr vps主机产品的时候可能自认为的优势之处,这样可以加强很多新用户对于 ...

  5. output和returnvalue的作用

    贴两段代码. 1> public int ExecuteNonQuery(string pro, MobileOrder or)        {            SqlParameter ...

  6. 关于WebView的复习

    最近不知为啥,公司提出要用webView,偷笑不止.在青软上课的时候学过这东西,是说条件比较紧张的时候可以拿来充数的,现在公司里手机端开发人员很多,做的好好的,放着原生ui不用,非要赶时髦搞什么Web ...

  7. 浅谈Android系统移植、Linux设备驱动

    一.Android系统架构 第一层:Linux内核 包括驱动程序,管理内存.进程.电源等资源的程序 第二层:C/C++代码库 包括Linux的.so文件以及嵌入到APK程序中的NDK代码 第三层:An ...

  8. 【zz】Matlab 二值图像形态学函数 bwmorph

    原文地址:http://blog.sina.com.cn/wind8961 函数功能: 对二值图像进行数学形态学(Mathematical Morphology)运算. 语法格式: BW2 = bwm ...

  9. mvc 导出excel

    #region 导出new方法 [NonAction] protected string RenderViewToString(Controller controller, string viewNa ...

  10. understand equal and gethashcode

    Supposed we have a class below public class TestHash { public int x; int y; public TestHash(int x, i ...