Android 五种常用的对话框
发布日期:2021-05-06 03:14:25 浏览次数:32 分类:技术文章

本文共 6562 字,大约阅读时间需要 21 分钟。

Android 五种常用的对话框

第一步:安卓界面布局

添加5个按钮,点击可显示不同的对话框效果
布局代码:

界面截图:

在这里插入图片描述
第二步:实现功能
第一种对话框(信息对话框),界面截图:
在这里插入图片描述
代码如下:

b1.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
new AlertDialog.Builder(MainActivity.this) .setIcon(R.mipmap.wx)//设置图标 .setTitle("删除记录确认")//设置标题 .setMessage("是否删除该记录")//设置内容 .setPositiveButton("是", new DialogInterface.OnClickListener() {
//点击是的监听事件 @Override public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this,"删除记录成功",Toast.LENGTH_SHORT).show(); } }) .setNegativeButton("否", new DialogInterface.OnClickListener() {
//点击否的监听事件 @Override public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this,"取消删除记录",Toast.LENGTH_SHORT).show(); } }) .show();//显示 } });

第二种对话框(选择对话框),界面截图:

在这里插入图片描述
代码如下:

b2.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
final String[]color={
"Green","Red","Blue","Yellow","White"};//添加一个数组来保存内容 new AlertDialog.Builder(MainActivity.this) .setTitle("请选择颜色")//设置标题 .setSingleChoiceItems(color, 0, new DialogInterface.OnClickListener() {
//显示内容,并添加监听事件 @Override public void onClick(DialogInterface dialogInterface, int i) {
switch(color[i]) {
case "Green": Toast.makeText(MainActivity.this,"Green",Toast.LENGTH_SHORT).show(); break; case "Red": Toast.makeText(MainActivity.this,"Red",Toast.LENGTH_SHORT).show(); break; case "Blue": Toast.makeText(MainActivity.this,"Blue",Toast.LENGTH_SHORT).show(); break; case "Yellow": Toast.makeText(MainActivity.this,"Yellow",Toast.LENGTH_SHORT).show(); break; case "White": Toast.makeText(MainActivity.this,"White",Toast.LENGTH_SHORT).show(); break; } } }) .show();//显示 } });

第三种对话框(自定义对话框),界面截图:

在这里插入图片描述
在实现功能之前,对话框要先自定义布局,首先创建一个xml文件来布局当前的对话框,代码如下:

代码如下:

b3.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
View view1=View.inflate(MainActivity.this,R.layout.diglog,null);//找到自定义对话框的xml文件 final EditText e1=view1.findViewById(R.id.e1);//用户名编辑框绑定ID final EditText e2=view1.findViewById(R.id.e2);//密码编辑库绑定ID new AlertDialog.Builder(MainActivity.this) .setTitle("自定义对话框")//设置标题 .setCancelable(false)//点击屏幕空白处,对话框不会消失 .setView(view1)//设置布局 .setPositiveButton("登陆", new DialogInterface.OnClickListener() {
//点击登陆的监听事件 @Override public void onClick(DialogInterface dialogInterface, int i) {
String user=e1.getText().toString().trim();//得到用户名 String password=e2.getText().toString().trim();//得到密码 Toast.makeText(MainActivity.this,"用户名:"+user+"\n"+"密码:"+password,Toast.LENGTH_SHORT).show(); } }) .show();//显示 } });

第四种对话框(带进度条的对话框),界面截图:

在这里插入图片描述
代码如下:

b4.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
final ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);//定义进度条对话框 progressDialog.setTitle("带对话框的进度条");//设置标题 progressDialog.setProgressStyle(progressDialog.STYLE_HORIZONTAL);//垂直进度条样式 progressDialog.setCancelable(false);//点击空白处,对话框不消失 progressDialog.show();//显示 new Thread(new Runnable() {
//开启多线程让进度条0.1秒滑动一次 @Override public void run() {
for (int i=0;i<=100;i++)//从0到100 {
try {
Thread.sleep(100);//0.1秒更新一次 } catch (Exception e) {
e.printStackTrace(); } progressDialog.setProgress(i); } progressDialog.dismiss();//当进度条达到100%时,对话框消失 } }).start();//开启多线程 } });

第五种对话框(日期对话框),界面截图:

在这里插入图片描述
代码如下:

b5.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
Calendar calendar=Calendar.getInstance();//定义日期控件 final int year=calendar.get(Calendar.YEAR);//获取年 final int month=calendar.get(Calendar.MONTH);//获取月 final int day=calendar.get(Calendar.DAY_OF_MONTH);//获取日 new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
//点击确定的监听事件 @Override public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
Toast.makeText(MainActivity.this,i+"年"+i1+"月"+i2+"日",Toast.LENGTH_SHORT).show(); } },year,month,day).show();//显示内容 } });
上一篇:Android 调用手机摄像头拍照并显示在当前界面
下一篇:Android 常用的两种(ProgressBar)和(SeekBar)的使用

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月05日 05时24分59秒