Android 封装对话框工具类

本文详细介绍了Android应用中对话框的设计,包括普通对话框、带有菜单、单选/多选选项的对话框以及带输入框的实现。作者分享了代码示例,并提到如何为Android开发者提供学习资源,如完整的学习资料包和进阶教程。
摘要由CSDN通过智能技术生成

// 设置要显示的信息

setMessage(“文本的提示信息:你妈喊你回家吃饭了!”).

// 设置确定按钮

setPositiveButton(“确定”, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, “选择就确定哦”, 0).show();

}

}).

// 设置取消按钮,null是什么都不做

setNegativeButton(“取消”, null).

// 设置退出按钮,在中间的按钮

setNeutralButton(“退出”, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// 退出程序

finish();

}

});

// 生产对话框

AlertDialog alertDialog = builder.create();

// 显示对话框

alertDialog.show();

}

程序运行后显示的结果:

在这里插入图片描述

这里如果点击取消,对话框消失,什么都没有做

如果点击退出,会直接退出程序

如果点击确定,会弹出一个Toast,提示你

(二)设计一个选择菜单样式的对话框


代码设计:

//数据源

String[] array = new String[] { “音乐”, “体育”, “舞蹈”, “看书” };

// 显示一个菜单的对话框选项,点击选择菜单后,菜单会消失

// 匿名类去创建

public void bt3(View v) {

final AlertDialog.Builder builder = new AlertDialog.Builder(this);

// 设置标题

builder.setTitle(“选择你最喜欢的课程”).

// 设置可选择的内容,并添加点击事件

setItems(array, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// which代表的是选择的标签的序列号

Toast.makeText(MainActivity.this, “选择” + array[which],

Toast.LENGTH_SHORT).show();

}

}).

// 产生对话框,并显示出来

create().show();

}

程序运行后显示的结果:

在这里插入图片描述

(三)设置一个单选按钮菜单的对话框


其实这个对话框和上面的菜单对话框差不多,只是样式改变了,还有一点不同的是点击一个选项后对话框是不会消失的,所以必须要设置按钮,来使对话框消失

代码设计:

String[] array = new String[] { “音乐”, “体育”, “舞蹈”, “看书” };

// 单选按钮的对话框,选择一个按钮值后,

// 对话框也是不会自动消失,需要自己关闭

// 要设置按钮,点击按钮后对话框才会消失

public void bt4(View v) {

final AlertDialog.Builder builder = new AlertDialog.Builder(this);

// 设置标题

builder.setTitle(“选择你最喜欢的课程”).

// 设置可选择的内容,并添加点击事件

// 第一个参数是可以选择的单选框的内容

// 第二个参数是默认选中的项

// 第三个参数是点击选中的监听器

setSingleChoiceItems(array, 0, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, “选择” + array[which],

Toast.LENGTH_SHORT).show();

}

}).

// 因为对话框不会自动消失,所以要添加按钮的必要

// 设置确定按钮

setPositiveButton(“确定”, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, “选择确定”, Toast.LENGTH_SHORT).show();

}

}).

// 取消,什么都不做,对话框消失而已

setNegativeButton(“取消”, null).

// 产生对话框,并显示出来

create().show();

}

运行后的结果:

在这里插入图片描述

(四)多选项的对话框设计


多选框的显示和单选的显示也是有点相似的,都是需要设置按钮来使对话框消失

代码如下:

String[] array = new String[] { “音乐”, “体育”, “舞蹈”, “看书” };

// 多选按钮的对话框

// 对话框也是不会自动消失,需要自己关闭

// 要设置按钮,点击按钮后对话框才会消失

public void bt5(View v) {

// 多选按钮的默认状态

boolean[] checkedItems = { true, false, false, true };

// 多选按钮选中后保存的数据

final List list = new ArrayList();

// 默认的数据

list.add(“音乐”);

list.add(“看书”);

// 创建对话框的builder对象

final AlertDialog.Builder builder = new AlertDialog.Builder(this);

// 设置标题

builder.setTitle(“选择你最喜欢的课程”).

// 设置可选择的内容,并添加点击事件

// 第一个参数是可以选择的选框的内容

// 第二个参数是一个布尔数组,如果是true代表的是默认选中

// 第三个参数是点击选中的监听器

setMultiChoiceItems(array, checkedItems,

new OnMultiChoiceClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which, boolean isChecked) {

// 这里无论某个选项是被选中后被取消都会触发该方法

// which代表的是选中的是多少游标值的选项

// isChecked是代表该选项是或否选中了

// 判断如果集合中有某个数据,就把他移除,否则就添加数据

// 注意这里数选择之后的状态

if (isChecked) {

// 添加数据

list.add(array[which]);

} else {

// 移除数据

list.remove(array[which]);

}

}

}).

// 因为对话框不会自动消失,所以要添加按钮的必要

// 设置确定按钮

setPositiveButton(“确定”, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, “你选中了” + list, 0)

.show();

}

}).

// 取消,什么都不做,对话框消失而已

setNegativeButton(“取消”, null).

// 产生对话框,并显示出来

create().show();

}

在这里插入图片描述

在这里插入图片描述

(五)设计一个有输入框的对话框


自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

[外链图片转存中…(img-DqzT8VeD-1713754587397)]

最后

由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件

[外链图片转存中…(img-DCjvgrcx-1713754587399)]

[外链图片转存中…(img-QbXbkzWX-1713754587401)]

[外链图片转存中…(img-SUQs5aEI-1713754587402)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值