笔记17 | 复习AlertDialog(对话框)示例

前言

本节给大家带来是显示提示信息的第三个控件AlertDialog(对话框),查看源码知道是Dialog的子类!ProgressDialog,TimePickerDialog父类等。另外,会发现构造方法是保护的,如果我们要创建AlertDialog的话,我们需要使用到该类中的一个静态内部类:public static class Builder,然后来调用AlertDialog里的相关方法,来对AlertDialog进行定制,最后调用show()方法来显示我们的AlertDialog对话框!好的,下面我们就来学习AlertDialog的基本用法,以及定制我们的AlertDialog!

地址

http://blog.csdn.net/xiangyong_1521/article/details/50528403

目录

  • 实现效果
  • 实现过程
  • 主要代码

一.实现效果


二.实现过程

  1. 创建AlertDialog.Builder对象;
  2. 调用setIcon()来设置图标,的setTitle()或setCustomTitle()设置标题;
  3. 设置对话框的内容:setMessage()还有其他方法来指定显示的内容;
  4. 调用setPositive / Negative / NeutralButton()设置:确定,取消,中立按钮;
  5. 调用创建()方法创建这个对象,再调用显示()方法将对话框显示出来;

三.主要代码

  • MianActivity.java
package com.Evan.demo_alertdialog;  import android.R.menu;  import android.app.Activity;  import android.app.AlertDialog;  import android.content.DialogInterface;  import android.content.DialogInterface.OnClickListener;  import android.content.DialogInterface.OnMultiChoiceClickListener;  import android.os.Bundle;  import android.view.View;  import android.widget.Button;  import android.widget.Toast;  public class MainActivity extends Activity {      private Button dialog_1,dialog_2,dialog_3,dialog_4;      private AlertDialog alert;      private AlertDialog.Builder builder=null;      private boolean[] checkItems;      private final String[] Loves={              "benz","BMW","Lamborghini","Porsche","Audi"      };      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          SetView();      }      private void SetView() {          dialog_1=(Button) findViewById(R.id.button1);          dialog_2=(Button) findViewById(R.id.button2);          dialog_3=(Button) findViewById(R.id.button3);          dialog_4=(Button) findViewById(R.id.button4);      }      public void onClick(View v){          switch (v.getId()) {          /*           * 普通选择对话框           */          case R.id.button1:              alert=null;              builder=new AlertDialog.Builder(MainActivity.this);              alert=builder.setIcon(R.drawable.aa4)//图标                      .setTitle("标题设置")                      .setMessage("弹出主题设置")                      .setNegativeButton("取消", new OnClickListener() {                          @Override                          public void onClick(DialogInterface dialog, int which) {                              Toast.makeText(MainActivity.this, "您选择了:取消", 0).show();                          }                      }).setPositiveButton("确认", new OnClickListener() {                          @Override                          public void onClick(DialogInterface dialog, int which) {                              Toast.makeText(MainActivity.this, "您选择了:确认", 0).show();                          }                      }).create();//创建              alert.show();//显示              break;              /*               * 普通单选对话框               */          case R.id.button2:              alert=null;              builder=new AlertDialog.Builder(MainActivity.this);              alert=builder.setIcon(R.drawable.aa4)                      .setTitle("标题设置")                      .setItems(Loves, new OnClickListener() {                          @Override                          public void onClick(DialogInterface dialog, int which) {                              Toast.makeText(MainActivity.this, "你选择了:"+Loves[which], 0).show();                          }                      }).create();              alert.show();              break;              /*               * 单项选择对话框               */          case R.id.button3:              alert=null;              builder=new AlertDialog.Builder(MainActivity.this);              alert=builder.setIcon(R.drawable.aa4)                      .setTitle("标题设置")                      .setSingleChoiceItems(Loves, 0, new OnClickListener() {                          @Override                          public void onClick(DialogInterface dialog, int which) {                              Toast.makeText(getApplicationContext(), "你选择了" + Loves[which], Toast.LENGTH_SHORT).show();                          }                      }).create();              alert.show();              break;              /*               * 多项选择对话框               */          case R.id.button4:              checkItems = new boolean[]{false, false, false, false, false};              alert=null;              builder=new AlertDialog.Builder(MainActivity.this);              alert=builder.setIcon(R.drawable.aa4)                      .setTitle("标题设置")                      .setMultiChoiceItems(Loves, checkItems, new OnMultiChoiceClickListener() {                          @Override                          public void onClick(DialogInterface dialog, int which, boolean isChecked) {                              checkItems[which]=isChecked;                          }                      }).setPositiveButton("确实选择", new OnClickListener() {                          @Override                          public void onClick(DialogInterface dialog, int which) {                              String result="";                              for(int i=0;i<checkItems.length;i++){                                  if(checkItems[i])                                      result+=Loves[i]+" ";                              }                              Toast.makeText(getApplicationContext(), "选择的是:" + result, Toast.LENGTH_SHORT).show();                          }                      })                      .create();              alert.show();              break;          }      }  }  
  • XML
<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"      tools:context=".MainActivity" >      <Button          android:id="@+id/button1"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:layout_alignParentLeft="true"          android:layout_alignParentTop="true"          android:layout_marginTop="14dp"          android:onClick="onClick"          android:text="普通选择对话框" />      <Button          android:id="@+id/button2"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:layout_alignParentLeft="true"          android:layout_below="@+id/button1"          android:onClick="onClick"          android:text="普通单选对话框" />      <Button          android:id="@+id/button3"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:layout_alignLeft="@+id/button1"          android:layout_below="@+id/button2"          android:onClick="onClick"          android:text="单项选择对话框" />      <Button          android:id="@+id/button4"          android:layout_width="match_parent"          android:onClick="onClick"          android:layout_height="wrap_content"          android:layout_alignLeft="@+id/button2"          android:layout_below="@+id/button3"          android:text="多项选择对话框" />  </RelativeLayout>  

原文发布于微信公众号 - 项勇(xiangy_life)

原文发表时间:2017-10-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏水击三千

Android学习Tabhost、gallery、listview、imageswitcher

Tabhost控件又称分页控件,在很多的开发语言中都存在。它可以拥有多个标签页,每个标签页可以拥有不同的内容。android中,一个标签页可以放 一个view或...

2626
来自专栏何俊林

Android TV开发总结(七)构建一个TV app中的剧集列表控件

前言:剧集类控件,在TV app中非常常见,今天将介绍构建一个TV app中的剧集列表控件,此控件上传到我的Github: https://github.com...

2716
来自专栏向治洪

RecyclerView 实现gallery画廊效果

1、RecyclerView的基本用法 首先主Activity的布局文件: <RelativeLayout xmlns:android="http://sc...

4785
来自专栏iOSDevLog

002. 糗事百科 / QiuShiBaiKe [android]

3069
来自专栏Fish

从相机or相册获取图片并显示

这个技术应该算是十分稀松平常了,但是对于小白来说,还是要费一番功夫的。因此在这里贴上我的代码,也是为了以后用到的时候方便找。。。 package com.exa...

2847
来自专栏向治洪

Android ViewDragHelper及移动处理总结

概述 2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用。我们知道在...

2798
来自专栏猿份到

仿网易栏目添加功能

在qq群里面发现一个小伙伴有需要做类似于网易新闻客户端栏目拖拽添加的这种效果,特意做了类似效果,效果图如下(文章结尾有源码链接): ? ? ? ? 实现了点击...

3538
来自专栏Android干货

浅谈TabLayout(ViewPager+Tab联动)

42411
来自专栏james大数据架构

仿优酷Android客户端图片左右滑动(自动滑动)

最终效果: ? 页面布局main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns...

2067
来自专栏向治洪

ViewFlipper实现多页面切换

1、屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。...

20810

扫码关注云+社区