场景

Android中常用的五种对话框为

常规对话框、带列表的对话框、自定义的对话框、带进度条的对话框、带日期选择器的对话框。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

常规对话框

新建一个空项目,调整activity_main.xml的布局为LinearLayout,并添加一个Button,设置其点击事件

    <Buttonandroid:id="@+id/button_normal_dialog"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startNormalDialog"android:text="启动常规对话框" />

然后在activity中实现其点击方法

    /**** 启动常规对话框* @param view*/public void startNormalDialog(View view){new AlertDialog.Builder(this).setIcon(R.drawable.ic_launcher_background).setTitle("公众号:霸道的程序猿").setCancelable(false).setMessage("是否删除该条记录").setPositiveButton("是", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,"删除记录成功",Toast.LENGTH_LONG).show();}}).setNegativeButton("否", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,"取消删除记录",Toast.LENGTH_LONG).show();}}).show();}

运行项目查看效果

带列表的对话框

在布局文件中添加一个按钮

    <Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startListDialog"android:text="启动带列表的对话框" />

在activity中实现其点击方法

    /*** 启动带列表的对话框* @param view*/public void startListDialog(View view){final String[] items = {"关注","公众号","霸道的程序猿","获取","编程教程与资源"};new AlertDialog.Builder(this).setTitle("公众号:霸道的程序猿").setCancelable(false).setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,items[which],Toast.LENGTH_LONG).show();}}).setPositiveButton("OK",null).show(); }

运行之后查看效果

自定义视图的对话框

在layout下新建layout资源文件dialog_view.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompatxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation= "vertical"><EditTextandroid:id="@+id/text_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"android:hint="用户名"android:inputType="textPersonName" /><EditTextandroid:id="@+id/text_pwd"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"android:hint="密码"android:inputType="textPersonName" />
</androidx.appcompat.widget.LinearLayoutCompat>

然后在主布局文件中添加一个按钮

    <Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startCustomDialog"android:text="启动自定义的对话框" />

在activity中实现其点击方法

    /*** 启动自定义的对话框* @param view*/public void startCustomDialog(View view){View v = View.inflate(this,R.layout.dialog_view,null);final EditText user = v.findViewById(R.id.text_username);final EditText pwd = v.findViewById(R.id.text_pwd);new AlertDialog.Builder(this).setTitle("公众号:霸道的程序猿").setCancelable(false).setView(v).setPositiveButton("登录", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String username = user.getText().toString().trim();String password = pwd.getText().toString().trim();Toast.makeText(MainActivity.this,"用户名:"+username+"密码:"+password,Toast.LENGTH_LONG).show();}}).show();}

运行之后查看效果

带进度条的对话框

在布局文件中添加按钮

    <Buttonandroid:id="@+id/button4"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startProgressDialog"android:text="启动带进度条的对话框" />

在activity中实现其点击方法

    /*** 启动带进度条的对话框* @param view*/public void startProgressDialog(View view){final ProgressDialog progressDialog = new ProgressDialog(this);progressDialog.setTitle("公众号:霸道的程序猿");progressDialog.setCancelable(false);progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.show();new Thread(new Runnable() {@Overridepublic void run() {for(inti=1;i<=20;i++){try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}progressDialog.setProgress(progressDialog.getProgress()+5);}progressDialog.dismiss();}}).start();}

运行之后查看效果

带日期选择器的对话框

在布局文件中添加按钮

    <Buttonandroid:id="@+id/button5"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startDatePickDialog"android:text="启动带日期选择器的对话框" />

在activity中实现其点击方法

    /*** 启动带日期选择器的对话框* @param view*/public void startDatePickDialog(View view){Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH);int day = calendar.get(Calendar.DAY_OF_MONTH);new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {Toast.makeText(MainActivity.this,"选中了"+year+"年"+month+"月"+dayOfMonth+"日",Toast.LENGTH_LONG).show();}},year,month,day).show();}

运行之后查看效果

activity_main.xml完整代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><Buttonandroid:id="@+id/button_normal_dialog"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startNormalDialog"android:text="启动常规对话框" /><Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startListDialog"android:text="启动带列表的对话框" /><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startCustomDialog"android:text="启动自定义的对话框" /><Buttonandroid:id="@+id/button4"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startProgressDialog"android:text="启动带进度条的对话框" /><Buttonandroid:id="@+id/button5"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="startDatePickDialog"android:text="启动带日期选择器的对话框" />
</LinearLayout>

MainActivity完整代码

package com.badao.androidstudy;import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Toast;import java.util.Calendar;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/**** 启动常规对话框* @param view*/public void startNormalDialog(View view){new AlertDialog.Builder(this).setIcon(R.drawable.ic_launcher_background).setTitle("公众号:霸道的程序猿").setCancelable(false).setMessage("是否删除该条记录").setPositiveButton("是", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,"删除记录成功",Toast.LENGTH_LONG).show();}}).setNegativeButton("否", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,"取消删除记录",Toast.LENGTH_LONG).show();}}).show();}/*** 启动带列表的对话框* @param view*/public void startListDialog(View view){final String[] items = {"关注","公众号","霸道的程序猿","获取","编程教程与资源"};new AlertDialog.Builder(this).setTitle("公众号:霸道的程序猿").setCancelable(false).setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,items[which],Toast.LENGTH_LONG).show();}}).setPositiveButton("OK",null).show();}/*** 启动自定义的对话框* @param view*/public void startCustomDialog(View view){View v = View.inflate(this,R.layout.dialog_view,null);final EditText user = v.findViewById(R.id.text_username);final EditText pwd = v.findViewById(R.id.text_pwd);new AlertDialog.Builder(this).setTitle("公众号:霸道的程序猿").setCancelable(false).setView(v).setPositiveButton("登录", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String username = user.getText().toString().trim();String password = pwd.getText().toString().trim();Toast.makeText(MainActivity.this,"用户名:"+username+"密码:"+password,Toast.LENGTH_LONG).show();}}).show();}/*** 启动带进度条的对话框* @param view*/public void startProgressDialog(View view){final ProgressDialog progressDialog = new ProgressDialog(this);progressDialog.setTitle("公众号:霸道的程序猿");progressDialog.setCancelable(false);progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.show();new Thread(new Runnable() {@Overridepublic void run() {for(int i=1;i<=20;i++){try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}progressDialog.setProgress(progressDialog.getProgress()+5);}progressDialog.dismiss();}}).start();}/*** 启动带日期选择器的对话框* @param view*/public void startDatePickDialog(View view){Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH);int day = calendar.get(Calendar.DAY_OF_MONTH);new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {Toast.makeText(MainActivity.this,"选中了"+year+"年"+month+"月"+dayOfMonth+"日",Toast.LENGTH_LONG).show();}},year,month,day).show();}}

Android中五种常用对话框的使用相关推荐

  1. Android中五种常用的menu

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  2. Android UI开发第二十九篇——Android中五种常用的menu(菜单)

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  3. java简述常见的布局极其特点_请简要说明 Android 中五种常见布局的特点。_学小易找答案...

    [简答题]请简要说明有序广播和无序广播的区别 [简答题]请简要说明 Android 程序结构中 AndroidManifest.xml 的功能? [简答题]简述李村站人工办理进路的作业过程. [简答题 ...

  4. python 中五种常用的数据类型

    一.字符串 单引号定义: str1 = 'hello' 双引号定义: str1 = "hello" 三引号定义:"""人生苦短,我用python!&q ...

  5. Android中几种常用的定时器和延时方法

    通过实际项目的练习,掌握了几种android基本定时器和延时的用法,这里我想总结一下作为自己的收获,下面列出的是比较简洁的模式,方便简单地在程序中直接调用.  一.三种常用的定时器  1.Handle ...

  6. 软件工程中五种常用的软件开发模型整理

    软件工程期末考试复习资料整理,顺便码了个博客,emmm~ 下面都是我对各位博主文章种我认为写的比较好的内容的截取 引言 软件将要经历一个定义.开发.运行维护,直至被淘汰这样的生命周期. 为了使软件生命 ...

  7. springBoot整合rabbitmq并测试五种常用模型

    之前我们记录了原生java代码使用rabbitmq的方法,很简单,类似于原生jdbc代码一样,将连接对象抽离出来作为工具类,生产者和消费者通过工具类获取连接对象,进而获取通道对象,再注册交换机或者是队 ...

  8. matlab fx函数图像,五种常用小波基含MATLAB实现 五种基本函数图像

    五种基本函数图像 1.给出五种常用小波基的时域和频域波形图. 与标准的傅里叶变换相比,小波分析中使用到的小波函数具有不唯一性,即小波函数(t) 具有多样性.小波分析在工程应用中,一个十分重要的问题就 ...

  9. 细节分析Linux中五种IO模型和三种实现方式

    I/O介绍 操作系统分为两种I/O 网络IO:本质是socket读取 磁盘IO:DMA操作读取 C/C++Linux服务器开发知识点 内容包括C/C++,Linux,Nginx,ZeroMQ,MySQ ...

最新文章

  1. 初中计算机指导教师意见,初中信息技术教学计划(推荐3篇)
  2. 【微信小程序企业级开发教程】事件相关详解
  3. python实战项目_11 个实战项目,掌握 Python 数据可视化
  4. 225. Implement Stack using Queues
  5. QML ListView几个常用且非常重要的属性
  6. 检测ID卡的输入或者是其它卡的输入。
  7. redis setnx原子性_不支持原子性的 Redis 事务也叫事务吗?
  8. 剪枝乱炖 | 模型加速与压缩
  9. 12306的数据库设计
  10. viper4android hifi,体验HiFi级音质 蝰蛇音效进阶使用教程
  11. 基于信用卡业务测试数据支持解决方案
  12. linux ping结果中mdev,ping之mdev值
  13. 幻立方解法之素数3阶幻立方
  14. 初读《设计模式之禅》
  15. 用HTML制作代码雨源码分享
  16. 在背景色和背景图片同时存在的情况下,为什么还要设置背景色?
  17. CICE海冰模式的编译
  18. TB5 AXD 在win7 vista下 启动失败
  19. Mixly23:U型红外光电开关
  20. OpenCV4经典案例实战教程 笔记

热门文章

  1. varnish的服务配置(实验说明)
  2. oracle备份及恢复
  3. 给页面字段中添加一个按钮,点击按钮实现弹窗效果
  4. 办公出口ip多个地址_如何正确分配与高效管理IP地址
  5. license 验证服务器唯一机器码_代码审计工具Fortify 17.10及Mac平台license版本
  6. 三星android 7.0 root,三星G9300 7.0 root教程及获取7.0的root权限
  7. 定时清理日志文件-python实现
  8. java读取属性文件的方法_java读取属性文件的方法
  9. 有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文
  10. {}是set类型还是dict类型呢