Android之AlertDialog应用

Android 中的对话框 dialog

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

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

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

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

activity_main 布局文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.dragon.android.alertdialog.MainActivity">
11 
12     <Button
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:text="massage"
16         android:id="@+id/bt_msg"
17         android:layout_alignParentTop="true"
18         android:layout_centerHorizontal="true" />
19 
20     <Button
21         android:layout_width="wrap_content"
22         android:layout_height="wrap_content"
23         android:text="sure"
24         android:id="@+id/bt_sure"
25         android:layout_below="@+id/bt_msg"
26         android:layout_alignRight="@+id/bt_msg"
27         android:layout_alignEnd="@+id/bt_msg" />
28 
29     <Button
30         android:layout_width="wrap_content"
31         android:layout_height="wrap_content"
32         android:text="EditText"
33         android:id="@+id/bt_editText"
34         android:layout_below="@+id/bt_sure"
35         android:layout_alignLeft="@+id/bt_sure"
36         android:layout_alignStart="@+id/bt_sure" />
37 
38     <Button
39         android:layout_width="wrap_content"
40         android:layout_height="wrap_content"
41         android:text="singlechoice"
42         android:id="@+id/bt_singleChoice"
43         android:layout_below="@+id/bt_editText"
44         android:layout_centerHorizontal="true" />
45 
46     <Button
47         android:layout_width="wrap_content"
48         android:layout_height="wrap_content"
49         android:text="mutichoice"
50         android:id="@+id/bt_multiChoice"
51         android:layout_below="@+id/bt_singleChoice"
52         android:layout_centerHorizontal="true" />
53 
54     <Button
55         android:layout_width="wrap_content"
56         android:layout_height="wrap_content"
57         android:text="imageview"
58         android:id="@+id/bt_imageView"
59         android:layout_below="@+id/bt_multiChoice"
60         android:layout_centerHorizontal="true" />
61 </RelativeLayout>
activity_main

MainActivity

 1 package com.dragon.android.alertdialog;
 2 
 3 import android.content.DialogInterface;
 4 import android.os.Bundle;
 5 import android.support.v7.app.AlertDialog;
 6 import android.support.v7.app.AppCompatActivity;
 7 import android.view.View;
 8 import android.widget.EditText;
 9 import android.widget.ImageView;
10 
11 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
12 
13     @Override
14     protected void onCreate(Bundle savedInstanceState) {
15         super.onCreate(savedInstanceState);
16         setContentView(R.layout.activity_main);
17         initView();
18     }
19 
20     private void initView() {
21         findViewById(R.id.bt_msg).setOnClickListener(this);
22         findViewById(R.id.bt_sure).setOnClickListener(this);
23         findViewById(R.id.bt_editText).setOnClickListener(this);
24         findViewById(R.id.bt_singleChoice).setOnClickListener(this);
25         findViewById(R.id.bt_multiChoice).setOnClickListener(this);
26         findViewById(R.id.bt_imageView).setOnClickListener(this);
27     }
28 
29     @Override
30     public void onClick(View v) {
31         AlertDialog.Builder builder = new AlertDialog.Builder(this);
32         switch (v.getId()) {
33 case R.id.bt_msg: 34 builder 35 .setTitle("Title") // 设置标题 36 .setMessage("this is a massage") // 设置提示信息 37 .setPositiveButton("sure", null) // 参数1:按钮名;参数2:监听器 38 .show(); 39 break;
40 case R.id.bt_sure: 41 builder 42 .setTitle("Sure") 43 .setMessage("Sure?") 44 .setPositiveButton("sure", null) 45 .setNegativeButton("cancel", null) 46 .show(); 47 break;
48 case R.id.bt_editText: 49 builder 50 .setTitle("Please input") 51 .setView(new EditText(this)) // 此方法显示一个View 52 .setPositiveButton("sure", null) 53 .setNegativeButton("cancel", null) 54 .show(); 55 break;
56 case R.id.bt_singleChoice: 57 builder 58 .setTitle("Please choice") 59 .setSingleChoiceItems(new String[]{"A", "B", "C"}, 0, 60 new DialogInterface.OnClickListener() { 61 @Override 62 public void onClick(DialogInterface dialog, int which) { 63 // 单选框,点击一个则自动退出 64 dialog.dismiss(); 65 } 66 }) // 参数1:选择框的选项数;参数2:选择的选项ID;参数3:监听器 67 .setNegativeButton("cancel", null) 68 .show(); 69 break;
70 case R.id.bt_multiChoice: 71 builder 72 .setTitle("Please choice") 73 .setMultiChoiceItems(new String[]{"A", "B", "C"}, null, null) // 类同单选 74 .setPositiveButton("sure", null) 75 .setNegativeButton("cancel", null) 76 .show(); 77 break;
78 case R.id.bt_imageView: 79 ImageView imageView = new ImageView(this); 80 imageView.setImageResource(R.mipmap.ic_launcher); // 设置图片资源 81 builder 82 .setTitle("Image") 83 .setView(imageView) // 此方法显示一个View 84 .setPositiveButton("sure", null) 85 .show(); 86 break; 87 } 88 } 89 }
原文地址:https://www.cnblogs.com/xmcx1995/p/5845860.html