1.代码运行目录

AndroidManifest.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.administrator.android">
 4
 5     <application
 6         android:allowBackup="true"
 7         android:icon="@mipmap/ic_launcher"
 8         android:label="@string/app_name"
 9         android:supportsRtl="true"
10         android:theme="@style/AppTheme">
11         <activity android:name=".MainActivity" />
12         <activity android:name=".TestActivity4" />
13         <activity android:name=".Main2Activity" />
14         <activity android:name=".Main3Activity">
15             <intent-filter>
16                 <action android:name="android.intent.action.MAIN" />
17                 <category android:name="android.intent.category.LAUNCHER" />
18             </intent-filter>
19         </activity>
20         <activity android:name=".Main5Activity"></activity>
21     </application>
22
23 </manifest>

2.布局文件

activity_mani.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout 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     tools:context="com.example.administrator.android.Main3Activity"
 7     android:orientation="vertical">
 8     <!--对话框-->
 9         <Button
10             android:layout_width="match_parent"
11             android:layout_height="wrap_content"
12             android:text="一般对话框"
13             android:onClick="bt1_onclick"/>
14         <Button
15             android:layout_width="match_parent"
16             android:layout_height="wrap_content"
17             android:text="单选对话框"
18             android:onClick="bt2_onclick"/>
19         <Button
20             android:layout_width="match_parent"
21             android:layout_height="wrap_content"
22             android:text="复选对话框"
23             android:onClick="bt3_onclick"/>
24         <Button
25             android:layout_width="match_parent"
26             android:layout_height="wrap_content"
27             android:text="自定义对话框"
28             android:onClick="bt4_onclick"/>
29         <Button
30             android:layout_width="match_parent"
31             android:layout_height="wrap_content"
32             android:text="登录对话框"
33             android:onClick="bt5_onclick"/>
34         <Button
35             android:layout_width="match_parent"
36             android:layout_height="wrap_content"
37             android:text="日期对话框"
38             android:onClick="bt6_onclick"/>
39         <Button
40             android:layout_width="match_parent"
41             android:layout_height="wrap_content"
42             android:text="时间对话框"
43             android:onClick="bt7_onclick"/>
44         <Button
45             android:layout_width="match_parent"
46             android:layout_height="wrap_content"
47             android:text="普通进度对话框"
48             android:onClick="bt8_onclick"/>
49 </LinearLayout>

截屏如下:

3.各种对话框的运行JAVA代码。

Mani3Activity.java

第一种:一般对话框

 1 package com.example.administrator.android;
 2
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.Dialog;
 6 import android.app.ProgressDialog;
 7 import android.app.TimePickerDialog;
 8 import android.content.DialogInterface;
 9 import android.support.v7.app.AppCompatActivity;
10 import android.os.Bundle;
11 import android.text.Layout;
12 import android.view.LayoutInflater;
13 import android.view.View;
14 import android.widget.DatePicker;
15 import android.widget.EditText;
16 import android.widget.TimePicker;
17 import android.widget.Toast;
18 import java.util.Calendar;
19
20 public class Main3Activity extends AppCompatActivity {
21
22
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main3);
27     }
28     public void bt1_onclick(View v) {
29         //一般对话框 不能直接实例化
30         //内部提供构造器
31         //方法链调用
32         AlertDialog alertDialog = new AlertDialog.Builder(this)
33                 .setTitle("确认对话框")
34                 .setMessage("您确实要删除吗?")
35                 .setNegativeButton("取消", new DialogInterface.OnClickListener() {
36                     @Override
37                     public void onClick(DialogInterface dialog, int which) {
38                         Toast.makeText(Main3Activity.this, "取消删除……,which = " + which, Toast.LENGTH_SHORT).show();
39                     }
40                 })//负面按钮
41
42                 .setPositiveButton("确认", new DialogInterface.OnClickListener() {
43                     @Override
44                     public void onClick(DialogInterface dialog, int which) {
45                         Toast.makeText(Main3Activity.this, "执行删除……,which = " + which, Toast.LENGTH_SHORT).show();
46                     }
47                 })//正面按钮
48
49                 .setNeutralButton("中立", new DialogInterface.OnClickListener() {
50                     @Override
51                     public void onClick(DialogInterface dialog, int which) {
52                         Toast.makeText(Main3Activity.this, "执行命令……,which = " + which, Toast.LENGTH_SHORT).show();
53                     }
54                 })//普通按钮
55                 .setCancelable(false) //杜绝点击其他位置关闭对话框 不能以分号结尾
56                 .show(); //显示对话框的方法
57     }
58 }

第二种:单选对话框

 1 package com.example.administrator.android;
 2
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.Dialog;
 6 import android.app.ProgressDialog;
 7 import android.app.TimePickerDialog;
 8 import android.content.DialogInterface;
 9 import android.support.v7.app.AppCompatActivity;
10 import android.os.Bundle;
11 import android.text.Layout;
12 import android.view.LayoutInflater;
13 import android.view.View;
14 import android.widget.DatePicker;
15 import android.widget.EditText;
16 import android.widget.TimePicker;
17 import android.widget.Toast;
18 import java.util.Calendar;
19
20 public class Main3Activity extends AppCompatActivity {
21
22
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main3);
27     }
28  //单选对话框
29     public void bt2_onclick(View v) {
30         //final,中态 延长常量生命周期
31         final String[] str = {"男", "女"};
32         final AlertDialog a = new AlertDialog.Builder(this)
33                 .setTitle("单选对话框")
34                 .setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() {
35                     @Override
36                     public void onClick(DialogInterface dialog, int which) {
37                         Toast.makeText(Main3Activity.this, "which = " + which +
38                                 ",选中的是:" + str[which], Toast.LENGTH_LONG).show();
39                         //关闭对话框
40                         dialog.dismiss();
41                     }
42                 })
43                 .setCancelable(false)  //模态窗口
44                 .show();
45     }
46 }

单选对话框

第三种:复选对话框

 1 package com.example.administrator.android;
 2
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.Dialog;
 6 import android.app.ProgressDialog;
 7 import android.app.TimePickerDialog;
 8 import android.content.DialogInterface;
 9 import android.support.v7.app.AppCompatActivity;
10 import android.os.Bundle;
11 import android.text.Layout;
12 import android.view.LayoutInflater;
13 import android.view.View;
14 import android.widget.DatePicker;
15 import android.widget.EditText;
16 import android.widget.TimePicker;
17 import android.widget.Toast;
18 import java.util.Calendar;
19
20 public class Main3Activity extends AppCompatActivity {
21
22
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main3);
27     }
28 //复选对话框
29     public void bt3_onclick(View v)
30     {
31         final String [] str = {"宝马","奔驰","劳斯莱斯","宾利"};
32         final boolean[] ch = {true,false,false,true};
33         new AlertDialog.Builder(this)
34                 .setTitle("复选对话框")
35                 .setMultiChoiceItems(str, ch, new DialogInterface.OnMultiChoiceClickListener() {
36                     @Override
37                     public void onClick(DialogInterface dialog, int which, boolean isChecked) {
38                         //改变对应数组项的选中值状态
39                         ch[which]=isChecked;
40                     }
41                 })
42                 //添加响应按钮
43                 .setPositiveButton("确认", new DialogInterface.OnClickListener() {
44                     @Override
45                     public void onClick(DialogInterface dialog, int which) {
46                         int i = 0;
47                         //获取最终的选择状态
48                         for (boolean b : ch) {
49                             Toast.makeText(Main3Activity.this, str[i] + "选中的输出状态=" +
50                                     (b ? "选中" : "未选中"), Toast.LENGTH_LONG).show();
51                             i++;
52                         }
53                     }
54                 })
55                 .setNegativeButton("取消", null)
56                 .setCancelable(false)
57                 .show();
58     }
59 }

复选对话框

第四种:自定义对话框

 1 package com.example.administrator.android;
 2
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.Dialog;
 6 import android.app.ProgressDialog;
 7 import android.app.TimePickerDialog;
 8 import android.content.DialogInterface;
 9 import android.support.v7.app.AppCompatActivity;
10 import android.os.Bundle;
11 import android.text.Layout;
12 import android.view.LayoutInflater;
13 import android.view.View;
14 import android.widget.DatePicker;
15 import android.widget.EditText;
16 import android.widget.TimePicker;
17 import android.widget.Toast;
18 import java.util.Calendar;
19
20 public class Main3Activity extends AppCompatActivity {
21
22
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main3);
27     }
28  //自定义对话框
29     public void bt4_onclick(View v)
30     {
31         LayoutInflater layoutInflater = getLayoutInflater();
32        View view =  layoutInflater.inflate(R.layout.dialoglayout, null);
33         new AlertDialog.Builder(this)
34                 .setTitle("自定义对话框")
35                 .setPositiveButton("确定", new DialogInterface.OnClickListener() {
36                     @Override
37                     public void onClick(DialogInterface dialog, int which) {
38                         Toast.makeText(Main3Activity.this, "执行结束", Toast.LENGTH_SHORT).show();
39                     }
40                 })
41                 .setView(view)
42                 .show();
43     }
44 }

自定义对话框

第五种:登录对话框

 1 package com.example.administrator.android;
 2
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.Dialog;
 6 import android.app.ProgressDialog;
 7 import android.app.TimePickerDialog;
 8 import android.content.DialogInterface;
 9 import android.support.v7.app.AppCompatActivity;
10 import android.os.Bundle;
11 import android.text.Layout;
12 import android.view.LayoutInflater;
13 import android.view.View;
14 import android.widget.DatePicker;
15 import android.widget.EditText;
16 import android.widget.TimePicker;
17 import android.widget.Toast;
18 import java.util.Calendar;
19
20 public class Main3Activity extends AppCompatActivity {
21
22
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main3);
27     }
28 //登录对话框
29     public void bt5_onclick(View v)
30     {
31         //加载Layout文件
32         final View view = View.inflate(this, R.layout.dialog_login, null);
33
34         AlertDialog al = new AlertDialog.Builder(this)
35                 .setTitle("登录对话框")
36                 .setView(view)
37                 .setPositiveButton("登录", new DialogInterface.OnClickListener() {
38                     @Override
39                     public void onClick(DialogInterface dialog, int which) {
40                         //转换
41                         AlertDialog al = (AlertDialog)dialog;
42                         //获取输入信息
43                         EditText et_1 = (EditText)al.findViewById(R.id.et_1);
44
45                         Toast.makeText(Main3Activity.this, "用户名 = "+
46                                 et_1.getText(), Toast.LENGTH_SHORT).show();
47                         //验证并提示
48                     }
49                 })
50                 .setNegativeButton("取消",null)
51                 .show();
52     }
53 }

登录对话框

第六种:日历选择对话框

 1 package com.example.administrator.android;
 2
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.Dialog;
 6 import android.app.ProgressDialog;
 7 import android.app.TimePickerDialog;
 8 import android.content.DialogInterface;
 9 import android.support.v7.app.AppCompatActivity;
10 import android.os.Bundle;
11 import android.text.Layout;
12 import android.view.LayoutInflater;
13 import android.view.View;
14 import android.widget.DatePicker;
15 import android.widget.EditText;
16 import android.widget.TimePicker;
17 import android.widget.Toast;
18 import java.util.Calendar;
19
20 public class Main3Activity extends AppCompatActivity {
21
22
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main3);
27     }
28  //当前日期 日历
29     //单例模式
30     Calendar c = Calendar.getInstance();
31     //日期对话框
32     public void bt6_onclick(View v)
33     {
34         DatePickerDialog dp = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
35             @Override
36             public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
37                 Toast.makeText(Main3Activity.this, year+"-"+(monthOfYear+1)+"-"+dayOfMonth, Toast.LENGTH_SHORT).show();
38             }
39         }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
40
41         dp.setCancelable(false);
42
43         dp.show();
44     }
45 }

日历选择对话框

第七种:时间选择对话框

 1 package com.example.administrator.android;
 2
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.Dialog;
 6 import android.app.ProgressDialog;
 7 import android.app.TimePickerDialog;
 8 import android.content.DialogInterface;
 9 import android.support.v7.app.AppCompatActivity;
10 import android.os.Bundle;
11 import android.text.Layout;
12 import android.view.LayoutInflater;
13 import android.view.View;
14 import android.widget.DatePicker;
15 import android.widget.EditText;
16 import android.widget.TimePicker;
17 import android.widget.Toast;
18 import java.util.Calendar;
19
20 public class Main3Activity extends AppCompatActivity {
21
22
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main3);
27     }
28 //时间对话框
29     public void bt7_onclick(View v)
30     {
31         TimePickerDialog tp = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
32             @Override
33             public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
34                 Toast.makeText(Main3Activity.this, hourOfDay+":"+minute, Toast.LENGTH_SHORT).show();
35             }
36         }, c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE), true);
37
38         tp.setCanceledOnTouchOutside(false);
39
40         tp.show();
41     }
42 }

时间选择对话框

第八种:普通进度对话框

 1  //普通进度对话框
 2     public void bt8_onclick(View v)
 3     {
 4         final ProgressDialog progressDialog = new ProgressDialog(this);
 5         progressDialog.setTitle("进度对话框");
 6         progressDialog.setMessage("请等待. . .");
 7         progressDialog.setCancelable(false);
 8         progressDialog.show();
 9         //不要写业务代码
10         //开启子线程 实现多线程
11         //1.继承 2.实现接口
12         //1.继承 Thread,重写run方法,调用start()
13         new Thread(){
14             @Override
15             public void run() {
16                 try {
17                     //  延迟 线程
18                     Thread.sleep(3000);
19                 }
20                 catch (Exception e)
21                 {
22                 }
23                 progressDialog.dismiss();//关闭方法
24             }
25         }.start();//start负责启动子线程
26     }

普通进度对话框

第九种:水平进度对话框

 1 //水平进度对话框
 2     public void bt9_onclick(View v)
 3     {
 4         final ProgressDialog progressDialog = new ProgressDialog(this);
 5         progressDialog.setTitle("水平进度对话框");
 6         progressDialog.setMessage("正在加载 . . .");
 7         progressDialog.setCancelable(false);
 8         //设置水平
 9         progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
10         progressDialog.show();
11         final TextView tv_2 = (TextView)findViewById(R.id.tv_2);
12         //启动子线程-实现接口方式Runnable启动
13         //匿名内部类
14         new Thread(new Runnable() {
15             @Override
16             public void run() {
17             //模拟进度变化
18                 for (int i = 0 ; i <= 100;i++) {
19                     progressDialog.setProgress(i);
20                     try {
21                         //  延迟 线程
22                         Thread.sleep(200);
23                     } catch (Exception e) {
24                     }
25                 }
26                 //在子线程里访问UI线程的视图
27                 runOnUiThread(new Runnable() {
28                     @Override
29                     public void run() {
30                         tv_2.setText("下载完成!");
31                     }
32                 });
33                 //执行完业务代码
34                 //关闭
35                 progressDialog.dismiss();//关闭方法
36             }
37         }).start();
38     }
39 }

水平进度对话框

自定义对话框如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:layout_margin="16dp">
 7
 8     <EditText
 9         android:layout_width="match_parent"
10         android:layout_height="wrap_content"
11         android:hint="用户名"
12         android:id="@+id/et_1"
13         android:layout_margin="16dp"/>
14     <EditText
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:hint="密码"
18         android:inputType="numberPassword"
19         android:id="@+id/et_2"
20         android:layout_margin="16dp"/>
21 </LinearLayout>
22
23 *登录对话框*

登录对话框

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent">
 6
 7     <ImageView
 8         android:layout_width="wrap_content"
 9         android:layout_height="wrap_content"
10         android:src="@drawable/f8"
11         android:layout_gravity="center"/>
12 </LinearLayout>
13
14 *自定义对话框*

自定义对话框

转载于:https://www.cnblogs.com/TENOKAWA/p/5492754.html

各种安卓对话框代码合集相关推荐

  1. 一、PyTorch Cookbook(常用代码合集)

    PyTorch Cookbook(常用代码合集) 原文链接:https://mp.weixin.qq.com/s/7at6y2NcYaxGGN8syxlccA 谢谢作者的付出.

  2. GitHub上7000+ Star的Python常用代码合集

    作者 | 二胖并不胖 来源 | 大数据前沿(ID:bigdataqianyan) 今天二胖给大家介绍一个由一个国外小哥用好几年时间维护的Python代码合集.简单来说就是,这个程序员小哥在几年前开始保 ...

  3. apicloud ajax html,基于apicloudAJAX请求代码合集

    get请求代码: api.ajax({ url:'http://m.weather.com.cn/data/101010100.html' //天气预报网站的WebService接口 },functi ...

  4. 收藏 | 因果推断书籍代码合集

    来源:计量经济学服务中心本文约2700字,建议阅读8分钟 本文为你介绍了因果推断书籍的代码合集. 1.Causal Inference: The Mixtape 来源: https://mixtape ...

  5. 2013计算机视觉代码合集

    注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码. 最近一次更新:2013-9-7 一.特征提取Feature Extraction: ...

  6. 【CV】YOLOv4最全复现代码合集(含PyTorch/TF/Keras和Caffe等)

    前言 2020年4月24日,CVer第一时间推文:大神接棒,YOLOv4来了! 2020年6月28日,CVer第一时间推文:YOLOv4-Tiny来了!371 FPS! 距离YOLOv4正式推出,已经 ...

  7. YOLOv3最全复现代码合集(含PyTorch/TensorFlow和Keras等)

    点击上方"CVer",选择"置顶公众号" 重磅干货,第一时间送达 前戏 2018年3月26日,CVer第一时间推文:YOLOv3:你一定不能错过 2019年3月 ...

  8. 预编码 matlab,无线通信-预编码-MATLAB代码合集

    无线通信-预编码-MATLAB代码合集 c 2021-2-18 下载地址 https://www.codedown123.com/72422.html 多用户MIMO预编码之类的代码,帮助初学者进行编 ...

  9. js时间戳(代码合集)获取(年月日,秒戳,毫秒戳,) - 综合篇

    js时间戳(代码合集)获取(年月日,秒戳,毫秒戳,) - 综合篇 官方解说:JavaScript Date 对象 W3CSchool教程: JavaScript Date 对象 一.js获取北京时间 ...

最新文章

  1. 第六章---机器学习与数据建模
  2. Solaris 10绝非儿戏
  3. Shell脚本IF条件判断和判断条件总结
  4. aws python库_适用于Alexa的新AWS Python SDK入门指南
  5. comment.html手机文件,comment.html
  6. 软件开发工具大题考点整理
  7. 一个人php建站_人人站CMS-简单安全的PHP开源CMS建站系统
  8. linux上mysql命令无效_linux下mysql命令没用
  9. 基于HTML5之APP购物车实现
  10. 加法器verilog
  11. 镁光 鸡血模式 linux,所以,镁光1100到底是不是全盘slc的模式?之前就几个帖子...
  12. 微信公众号下发红包 -- PHP
  13. 802.11协议wifi新加密方式WPA3介绍
  14. 类的继承关系,多态的体现,我的觉得题目还是有点欠缺
  15. 【angular5】浅谈angular5与serviceWorker——(2)
  16. 存储系统-块iSCSI
  17. 技术小品文(一)字符串放在哪里?
  18. 用mne绘制fNIRS脑地形图(topomap)
  19. 「工具」不限速的百度网盘工具
  20. windows mysql更改目录权限_Windows下MySQL数据目录如何修改

热门文章

  1. AtCoder Grand Contest 015
  2. python之IO操作
  3. 关于输入输出流的心得
  4. VB DATA控件链接SQL SERVER
  5. 关于IIS和Serv-U在同一台服务器中端口冲突问题
  6. 父窗口与子窗口的数据传递问题
  7. leetcode算法题--分隔链表
  8. python文件运行问题
  9. 华清远见智能小车视频服务器,华清远见版世界杯足球对抗赛,智能小车C位出道...
  10. LightOJ 1084 Winter(记忆化搜索)