收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- AlertDialog dialog = builder.create();
- //显示对话框
- dialog.show();
复制代码
除了
Positive
和
Negative
,还可以设置一个
Neutral
按钮,表示中立,既不确定也不取消。
- builder.setNeutralButton(“纠结”, new OnClickListener() {
- @Override
- Public void onClick(DialogInterface dialog, int which) {
- }
- });
复制代码
2.列表对话框
如果需要给用户提供的选择比较多,就不要使用按钮了,按钮过多对话框会很不好看,我们可以设置一个列表,在列表中列出所有提供的选项。
代码如下:
- AlertDialog.Builder builder = new Builder(this);
- builder.setIcon(android.R.drawable.ic_dialog_alert);
- builder.setTitle(“手机准备自爆!”);
- //定义列表中的选项
- final String[] items = new String[]{
- “关机”,
- “重启手机”,
- “写遗书”,
- “跑路”,
- “把手机送给小明”
- };
- //设置列表选项
- builder.setItems(items, new OnClickListener() {
- //点击任何一个列表选项都会触发这个方法
- //arg1:点击的是哪一个选项
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- // 取消选择
- builder.setNegativeButton(“取消”, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- builder.show();
复制代码
3.单选对话框
选项较多时也可以使用单选对话框,给用户提供多个选项,但只允许选择一个。
代码如下:
注意对话框的图标、
title
、
message
等都不是必须的,看需求确定是否要设置,需要特别注意的一点,非确定取消对话框,不要设置
message
,比如像以下的单选对话框,设置了
message
,那么单选选项就会无法显示。
- AlertDialog.Builder builder = new Builder(this);
- builder.setTitle(“请选择您的家乡”);
- //定义单选的选项
- String[] items = new String[]{
- “地球”,
- “塞伯坦”,
- “M78星云”,
- “氪星”
- };
- //设置单选选项
- //arg1:表示默认选中哪一项,-1表示没有默认选中项
- builder.setSingleChoiceItems(items, -1, new OnClickListener() {
- //点击任何一个单选选项都会触发这个侦听方法执行
- //arg1:点击的是哪一个选项
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // 执行选中某个选项后的业务逻辑
- //点击某个选项后,触发onClick执行,要让对话框消失
- dialog.dismiss();
- }
- });
- // 设置取消按钮,用户可以决定不选
- builder.setNegativeButton(“取消”, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- //直接调用builder的show方法同样可以显示对话框,其内部也是先创建对话框对象,然后调用对话框的show()
- builder.show();
复制代码
4.多选对话框
还有一个对选对话框,给用户提供多个选项,并且可以同时选择多个。
代码如下:
- AlertDialog.Builder builder = new Builder(this);
- builder.setTitle(“请选择您需要的武器”);
- //定义单选的选项
- String[] items = new String[]{
- “AK-47”,
- “开山刀”,
- “啤酒瓶”,
- “板凳”,
- “创可贴”
- };
- //使用一个boolean数组表示默认选中项,因为是多选,可以有多个默认选中项,哪项被选中就把值赋为true
- final boolean[] checkedItems = new boolean[]{
- false,
- false,
- false,
- true,
- True
- };
- //设置多选选项
- //arg2:设置多选侦听
- builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
- //点击任何一个多选选项都会触发这个方法
- //arg1:点击的是哪一个选项
- //arg2:当前选项是否被选中
- @Override
- public void onClick(DialogInterface dialog, int which, boolean isChecked) {
- //点击某个选项,就改变该选项对应的boolean值,记录其是否被选中
- checkedItems[which] = isChecked;
- }
- });
- //用户选好要选的选项后,点击确定按钮
- builder.setPositiveButton(“确定”, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- }
- });
- // 取消选择
- builder.setNegativeButton(“取消”, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- builder.show();
复制代码
5.View对话框
对话框中还可以直接显示一个
View
对象,这个特性使对话框的样式更多种多样了。
代码如下:
- AlertDialog.Builder builder = new Builder(this);
- builder.setIcon(android.R.drawable.ic_dialog_info);
- builder.setTitle(“请输入内容”);
- //创建一个EditText对象设置为对话框中显示的View对象
- builder.setView(new EditText(MainActivity.this));
- //用户选好要选的选项后,点击确定按钮
- builder.setPositiveButton(“确定”, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- // 取消选择
- builder.setNegativeButton(“取消”, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- builder.show();
复制代码
对话框中显示的View对象,除了直接new一个指定的组件,也可以使用布局文件来定义一个布局,然后填充成View对象,用这样的自定义View可以让对话框可以显示出很复杂的内容。
这个对话框的内容是用布局文件定义的,很明显,是一个水平线性布局包裹一个输入框和一个文本框,这个布局文件比较简单,代码就不展示了。
代码如下:
- AlertDialog.Builder builder = new Builder(this);
- builder.setIcon(android.R.drawable.ic_dialog_info);
- builder.setTitle(“请输入验证码”);
- //把布局文件先填充成View对象
- View view = View.inflate(MainActivity.this, R.layout.item, null);
- //把填充得来的view对象设置为对话框显示内容
- builder.setView(view);
- builder.setPositiveButton(“确定”, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- builder.setNegativeButton(“取消”, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- builder.show();
复制代码
6.自定义Dialog
AlertDialog
的基类是
Dialog
,我们可以定义一个类直接继承
Dialog
,重写里面的方法,同样可以实现自定义对话框的样式。
首先先创建一个布局文件,定义对话框的样式。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
[外链图片转存中…(img-HREqlqXq-1715840259080)]
[外链图片转存中…(img-tULePo3t-1715840259081)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)