Android AlertDialog类

1. 创建AlertDialog

AlertDialog继承Dialog类,是系统自带的对话框。
AlertDialog.Builder提供了setTitle()setIcon()setMessage()来创建。

new AlertDialog.Builder(this)
        .setTitle("标题")
        .setIcon(R.mipmap.ic_launcher)
        .setMessage("消息内容")
        .create().show();

效果如下
在这里插入图片描述

2. 自定义标题或者内容

setCustomTitle(View customTitleView)自定义标题,setView(View view)自定义内容。

new AlertDialog.Builder(this)
        .setCustomTitle(getLayoutInflater().inflate(R.layout.layout_dialog_title, null))
        .setView(R.layout.layout_dialog_view)
        .create().show();

布局文件layout_dialog_title.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="dialog title"
    android:textSize="18sp"
    android:textColor="@color/red"
    android:gravity="center"/>

效果如下
在这里插入图片描述

3. 按钮

按钮分为3种类型,分别是PositiveButtonNegativeButtonNeutralButton,可以选择不同的按钮进行组合,但调用的顺序和最终按钮显示的顺序无关。

new AlertDialog.Builder(this)
        .setTitle("标题")
        .setIcon(R.mipmap.ic_launcher)
        .setMessage("消息内容")
        .setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        }).setNeutralButton("忽略", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        }).create().show();

效果如下
在这里插入图片描述

4. 列表显示

列表可以分为普通列表,单选列表和单选列表

  • 普通列表
    setItems(CharSequence[], OnClickListener)
    setItems(int, OnClickListener)
    setAdapter(ListAdapter, OnClickListener)
    setCursor(Cursor, OnClickListener, String)
    
    效果如下
    在这里插入图片描述
  • 单选列表
    setSingleChoiceItems(CharSequence[], int, OnClickListener) 
    setSingleChoiceItems(Cursor, int, String, OnClickListener)
    setSingleChoiceItems(int, int, OnClickListener)
    setSingleChoiceItems(ListAdapter, int, OnClickListener)
    
    效果如下
    在这里插入图片描述
  • 多选列表
    setMultiChoiceItems(CharSequence[], boolean[], OnMultiChoiceClickListener)
    setMultiChoiceItems(Cursor, String, String, OnMultiChoiceClickListener)
    setMultiChoiceItems(int, boolean[], OnMultiChoiceClickListener)
    
    效果如下
    在这里插入图片描述

5. 监听器

点击对话框旁边的区域或者返回键,对话框会退出,设置参数可以让这些操作失效。

setCancelable(false);

对话框也提供了监听器来监听对话框的状态

Builder.setOnCancelListener(OnCancelListener) // 取消监听器
Builder.setOnDismissListener(OnDismissListener) // 消亡监听器

6. 自定义样式

创建对话框的时候可以指定Theme来定制样式。

<style name="AppTheme.Dialog" parent="Theme.AppCompat.Light.Dialog">
    <!--Dialog的windowFrame框为无-->
    <item name="android:windowFrame">@null</item>
    <!--是否浮现在activity之上-->
    <item name="android:windowIsFloating">true</item>
    <!--是否半透明-->
    <item name="android:windowIsTranslucent">true</item>
    <!--是否显示title-->
    <item name="android:windowNoTitle">true</item>
    <!--设置dialog的背景,(#00000000)-->
    <item name="android:background">@android:color/transparent</item>
    <!--显示区域背景是否透明,(#00000000)-->
    <item name="android:windowBackground">@android:color/transparent</item>
    <!--就是用来控制灰度的值,系统的默认值是0.5 -->
    <!-- 当为1时,界面除了我们的dialog内容是高亮显示的,dialog以外的区域是黑色的,完全看不到其他内容,-->
    <item name="android:backgroundDimAmount">0.5</item>
    <!--显示区域以外是否使用黑色半透明背景-->
    <item name="android:backgroundDimEnabled">true</item>
</style>

效果如下
在这里插入图片描述

相关文章
Android Toast类
Android PopupWindow类
Android AlertDialog类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值