Android 对话框(Dialog)

本文介绍了Android中的对话框Dialog,包括其基本概念、常用的Dialog子类如AlertDialog、DatePickerDialog和TimePickerDialog,以及如何构建不同类型的对话框,如单选列表、多选列表和自定义布局的对话框。同时,讲解了DialogFragment的使用和与宿主Activity通信的方法,以及何时使用cancel()或dismiss()。最后提到了自定义对话框位置和动画的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对话框是提示用户做出决定或输入额外事件的小窗口。对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件。

Dialog类是对话框的基类,我们可以使用Dialog来构建一个对话框。但Android建议避免直接使用Dialog,而应该使用其子类。下面是一些Dialog的子类实现:

AlertDialog一个可以显示标题,可选项列表或自定义布局,最多还可以显示三个按钮的对话框。
DatePickerDialog或TimerPickerDialog一个带有允许用户选择日期或时间的预定义UI的对话框。

构建一个简单的提醒对话框

AlertDialog.Builder(this).apply {
    setTitle("我是标题")
    setMessage("我是内容")
    setPositiveButton("确认") { dialog, _ ->
        //点击了确认按钮
        dialog.dissmiss()
    }
    setNegativeButton("取消") { dialog, _ ->
        //点击了取消按钮
        dialog.dismiss()
    }
    create()
    show()
}

上面的对话框包括三个区域:   

1.标题区域,这是一个可选项,只应在内容区域被详细消息,列表,或自定义布局占据时使用。如果显示的是一条简单的消息或问题,则不需要标题。
2.内容区域,它可以显示消息,列表,或其他自定义的布局。
3.操作按钮,一个对话框中最多只允许存在三个操作按钮。

构建一个单选列表对话框

val colors = arrayOf("黄色", "红色", "绿色")
AlertDialog.Builder(this).apply {
    setTitle("选择颜色")
    setItems(colors) { _, which ->
        //which 选择项的索引位置
    }
    create()
    show()
}

使用setItems()方法创建一个包含标题和列表的对话框,默认状态下,触摸列表会清除对话框。

构建永久性的单选多选对话啊框

上面的单选对话框默认在触摸列表后清除,要想添加永久性的单选或多选可以分别使用setSingleChoiceItems()或setMultiChoiceItems()方法。setSingleChoiceItems()方法中的第二个参数表示表示默认选中,如果不希望默认选中可传入-1。

val colors = arrayOf("Red", "Green", "Blue")
AlertDialog.Builder(this).apply {
    setTitle("选择颜色")
    setSingleChoiceItems(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值