Android Studio(对话框AlertDialog)

前言

前面介绍了常用控件的相关属性,那些控件的使用起来也很容易。在本节及后面的章节介绍的控件将是相比于前面使用起来较为复杂的(不过使用多了,也很容易上手)。

这些控件常常需要配合java代码来使用,比如说对话框、列表视图等等。

这一节将学习"对话框AlertDialog"的使用。

创建

对话框是需要用户交互的,所以一般是以java代码的形式创建,以下是创建一个简单对话框的代码:

java 复制代码
new AlertDialog.Builder(this)
    // 对话框标题
    .setTitle("title")
    // 对话框信息内容
    .setMessage("this is Message")
    // 乐观按钮:文本内容、点击处理
    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    })
    // 消极按钮:文本内容、点击处理
    .setNegativeButton("取消",null)
    // 展示对话框
    .show();

输入框对话框

普通对话框的作用是"二次确认",本质上来说没有什么真正意义上的功能作用。

有时我们需要在弹出的对话框中进行用户输入,基于输入来进行接下来交互操作,那么上面简单的对框框就不适用了。

这时,对于AlertDialog.Builder对象就有个setView(View view)可以让我们可以设置对话框指定的内容视图控件,下面是一个弹出对话框用于修改的例子:

java 复制代码
EditText editText = new EditText(this);
editText.setHint("请输入要修改的用户名");

AlertDialog confirmDelete = new AlertDialog.Builder(this)
    .setTitle("修改用户名")
    .setView(editText)
    .setPositiveButton("修改", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            System.out.println("修改用户名为:"+editText.getText());
        }
    })
    .setNegativeButton("取消", null)
    .show();

// 当然你也可以通过以下方式引入自定义View
LayoutInflater layoutInflater = LayoutInflater.from(this); 
View upDateView = layoutInflater.inflate(R.layout.my_update, null); 

补充

除了上面谈到的一些方法,这里再补充一些方法以便让我们根据业务需求更好地去定制对话框。

方法 功能
setNeutral 设置中立按钮
setIcon 设置图标
setPositiveButtonIcon 设置乐观按钮图标
setNegativeButtonIcon 设置消极按钮图标
setNeutralButtonIcon 设置中立按钮图标
setItems 设置文本列表
setSingleChoiceItems 设置单选列表
setMultiChoiceItems 设置多选列表

后言

在接下来一节将介绍关于适配器Adapter的相关知识。

相关推荐
木风小助理3 分钟前
JavaStreamAPI的性能审视,优雅语法背后的隐形成本与优化实践
java·前端·数据库
Chan1611 分钟前
《Java并发编程的艺术》| ConcurrentHashMap 在 JDK 1.7 与 1.8 的底层实现
java·spring boot·java-ee·intellij-idea·juc
计算机程序猿学长1 小时前
微信小程序毕设项目推荐-基于java+springboot+mysql+微信小程序的校园外卖点餐平台基于springboot+微信小程序的校园外卖直送平台【附源码+文档,调试定制服务】
java·微信小程序·课程设计
建群新人小猿1 小时前
陀螺匠企业助手——组织框架图
android·java·大数据·开发语言·容器
CV_J1 小时前
索引库操作
java·开发语言·elasticsearch·spring cloud
申克Lab2 小时前
STM32 FreeRTOS 消息队列
java·stm32·嵌入式硬件
敲敲千反田2 小时前
多线程复习
java·开发语言
TheNextByte12 小时前
如何将文件从Android无线传输到 iPad
android·ios·ipad
敲敲了个代码2 小时前
多标签页强提醒不重复打扰:从“弹框轰炸”到“共享待处理队列”的实战
java·前端·javascript·面试·架构
Jackson@ML2 小时前
2026最新版Eclipse for Java安装使用指南
java·ide·eclipse