android+自定义alertdialog,安卓自定义AlertDialog

692237561129

AlertDialog.png

使用方法 example:

DialogUtil.showAlertDialog(getActivity(), R.mipmap.restart, "退出提示", "你确定要退出吗?"),

"确定", "取消", true, new DialogUtil.AlertDialogBtnClickListener() {

@Override

public void clickPositive() {

//positive

}

@Override

public void clickNegative() {

//negative

}

});

工具类主要代码

public class DialogUtil {

private static AlertDialog dialog;

/**

* @param activity Context

* @param iconRes 提示图标

* @param title 提示标题

* @param msg 提示内容

* @param positiveText 确认

* @param negativeText 取消

* @param cancelableTouchOut 点击外部是否隐藏提示框

* @param alertDialogBtnClickListener 点击监听

*/

public static void showAlertDialog(Activity activity, int iconRes, String title, String msg,

String positiveText, String negativeText, boolean

cancelableTouchOut, final AlertDialogBtnClickListener

alertDialogBtnClickListener) {

View view = LayoutInflater.from(activity).inflate(R.layout.custom_dialog_layout, null);

ImageView mIcon = view.findViewById(R.id.icon);

TextView mTitle = view.findViewById(R.id.title);

TextView mMessage = view.findViewById(R.id.message);

Button positiveButton = view.findViewById(R.id.positiveButton);

Button negativeButton = view.findViewById(R.id.negativeButton);

mIcon.setImageResource(iconRes);

mTitle.setText(title);

mMessage.setText(msg);

positiveButton.setText(positiveText);

negativeButton.setText(negativeText);

positiveButton.setOnClickListener(v -> {

alertDialogBtnClickListener.clickPositive();

dialog.dismiss();

});

negativeButton.setOnClickListener(v -> {

alertDialogBtnClickListener.clickNegative();

dialog.dismiss();

});

AlertDialog.Builder builder = new AlertDialog.Builder(activity);

builder.setView(view);

builder.setCancelable(true); //返回键dismiss

//创建对话框

dialog = builder.create();

dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);//去掉圆角背景背后的棱角

dialog.setCanceledOnTouchOutside(cancelableTouchOut); //失去焦点dismiss

dialog.show();

}

public interface AlertDialogBtnClickListener {

void clickPositive();

void clickNegative();

}

}

下面是布局文件 custom_dialog_layout.xml

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@null"

android:gravity="center"

android:orientation="vertical">

android:layout_width="280dp"

android:layout_height="wrap_content"

android:orientation="vertical"

tools:ignore="UselessParent">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/custom_dialog_title"

android:gravity="center"

android:minWidth="210dp"

android:orientation="horizontal"

android:paddingBottom="15dp"

android:paddingTop="15dp">

android:id="@+id/icon"

android:layout_width="20dp"

android:layout_height="20dp"

android:layout_gravity="center_vertical"

android:src="@mipmap/icon"/>

android:id="@+id/title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_vertical"

android:layout_marginLeft="8dip"

android:layout_marginStart="8dip"

android:text="@string/offlineNotifaction"

android:textColor="@color/colorLightBlack"

android:textSize="16sp"/>

android:id="@+id/content"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/custom_dialog_content"

android:gravity="center"

android:minHeight="80dip"

android:minWidth="210dp"

android:orientation="vertical">

android:id="@+id/message"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginLeft="10dip"

android:layout_marginStart="10dip"

android:clickable="true"

android:focusable="true"

android:paddingBottom="10dp"

android:paddingTop="10dp"

android:textSize="16sp"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/custom_dialog_button"

android:minWidth="210dp"

android:orientation="horizontal"

android:padding="12dp">

android:id="@+id/positiveButton"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_marginEnd="3dp"

android:layout_marginRight="3dp"

android:layout_weight="1"

android:background="@drawable/custom_dialog_negative"

android:text="@string/sure"

android:textAllCaps="false"

android:textColor="@android:color/white"/>

android:id="@+id/negativeButton"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_marginLeft="3dp"

android:layout_marginStart="3dp"

android:layout_weight="1"

android:background="@drawable/custom_dialog_positive"

android:text="@string/cancel"

android:textAllCaps="false"

android:textColor="@android:color/white"/>

提示框上部分背景 custom_dialog_title

android:shape="rectangle">

android:topLeftRadius="7dp"

android:topRightRadius="7dp"/>

提示框中部分背景 custom_dialog_content

android:shape="rectangle">

android:color="#f5f5f5"/>

android:width=".4dp"

android:color="#848484"/>

提示框下部分背景 custom_dialog_button

android:shape="rectangle">

android:bottomLeftRadius="7dp"

android:bottomRightRadius="7dp"/>

确定按钮样式 custom_dialog_negative

取消按钮样式 custom_dialog_positive

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql datetime 后面带了很多0_面试官:MySQL 表设计要注意什么?

作者 孤独烟来自公众号:孤独烟引言大家应该知道烟哥最近要(tiao 咳咳咳),嗯,不可描述!随手讲其中一部分知识,都是一些烟哥自己平时工作的总结以及经验。大家看完,其实能避开很多坑。而且很多问题&#xff0…

android studio viewo,Android Studio 之 ViewModel

ViewModel 是 JetPack 类库中的一个功能,可以保存控件的状态 ,在整个Activity 生命周期中,状态不会失效如屏幕翻转时,状态可保留,不会失效!与 LiveData 配合使用!配合 Room 进行 Sqlite 操作数据…

极域电子书包课堂管理系统_朝阳群众说小康 | 从黑板课本到VR互动课堂、电子书包,朝阳的课堂如此有趣!...

教育变迁一支粉笔、一块黑板、一本教材曾经是教师上课沿袭了几十年的“三大法宝”随着时代发展当科技遇上了教育课堂上又会擦出什么样的火花呢?今天,小朝带你走进咱朝阳的校园一探究竟不一young的朝阳教育近日,教育部“基于教学改革、融合信息…

安装引导黑屏_给电脑安装系统老是装不上,重启就黑屏,原来是这项设置在作怪!...

很多人和我反映说:给电脑安装系统重启电脑后就黑屏无法正确解压系统,这个问题大家有没有遇到呢?遇到这个问题的人可能会认为自己电脑的硬盘坏了,明明已经把需要的Windows操作系统拷贝到硬盘已经成功了,重启电脑准备解压…

如果表不存在则创建_当创建一个文件的时候,操作系统发生了什么

操作文件是我们平时经常有的操作。但是我们可能并不是很了解他们原理,比如为什么删除一个很大的文件,会非常快?创建一个文件的时候,系统发生了什么?为什么删除的文件,还可以恢复?知其然知其所以…

两个html页面之间通讯,面试官:前端跨页面通信,你知道哪些方法?

引言在浏览器中,我们可以同时打开多个Tab页,每个Tab页可以粗略理解为一个“独立”的运行环境,即使是全局对象也不会在多个Tab间共享。然而有些时候,我们希望能在这些“独立”的Tab页面之间同步页面的数据、信息或状态。正如下面这…

默认选中_双击dwg图纸,怎么设置默认天正打开?

文尾左下角阅读原文看视频教程好课推荐:零基础CAD:点我CAD室内:点我 周站长CAD:点我CAD机械:点我 Bim教程:点我CAD建筑:点我CAD三维:点我全屋定制:点我 ps教程&#xff1…

临颖一高2021高考成绩查询,临颍一高举办2021年决战高考百日冲刺誓师大会

原标题:临颍一高举办2021年决战高考百日冲刺誓师大会3月4日,县一高举办2021年决战高考百日冲刺誓师大会,擂响了百日冲刺的战鼓,全校5800余名师生参加誓师大会。誓师大会在激昂雄壮的国歌声中拉开了序幕。县一高校长巩海生满怀深情…

2021年慈溪中学高考成绩查询,2021年慈溪市高考状元名单资料,今年慈溪市高考状元多少分...

高考状元一直都备受大家的关注,不管对于学校和还是当地教育系统,都是一件荣誉的事情。高考状元历来都诞生于艳羡的目光中,大家为他们的高分叫好,羡慕他们可以一步踏入国内知名学府。本文高考升学网为大家介绍历年慈溪市高考状元的…

网际风全推数据接口_智能风控系统设计与实践

导读在主流互联网产品中,比如搜索和推荐的系统,为了挖掘用户潜在购买需求,缩短用户到商品或信息的距离,提高用户的使用体验,都需要使用大量的特征来刻画用户的行为。在信息安全领域,建立在人工智能技术之上…

esp8266 html文件,ESP8266 基ESP8266_RTOS_SDK (ESP-IDF )中嵌入网页文件(示例代码)

场景:在写ESP8266 web服务的时候,免不了要将自己设计的网页html和css等文件放入到固件中。在arduino中有fs可以进行上传文件,然后通过文件系统读出。那在ESP-IDF中该怎么办呢。有几个思路1. 通过flash_download_tools 直接向固定地址写入文件…

高中计算机教师考试专业知识,高中教师资格证计算机专业考试内容

【导读】高中教师资格证计算机专业考综合素质、教育知识与能力和学科知识与教学能力,学科知识与教学能力是考计算机科学与技术的专业知识。高中教师资格证计算机专业考试内容高中教师资格证计算机专业考综合素质、教育知识与能力和学科知识与教学能力,学…

MySQL整数类型

整数类型又称数值型数据,数值型数据类型主要用来存储数字。 MySQL 提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大。 MySQL 主要提供的整数类型有 TINYINT、SMALLINT…

LISP 冻结excel窗格_粗暴讲解,2分钟 | 即懂excel 冻结首行、首列和单元格怎么弄?...

多少人上手excel,都是基本功不扎实啊?!想起当初自己学做数据,迫于不可抗力因素,糊里糊涂上岗。没囤过基础知识,全靠业务实践练操作。领导甩来什么需求,当天就要查各种方法给他做出来&#xff0c…

MySQL小数类型

MySQL 中使用浮点数和定点数来表示小数。 浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE);定点类型只有一种,就是 DECIMAL。 浮点类型和定点类型都可以用(M, D)来表示&…

linux windows文件 编码_Mac, Windows和Linux电脑之间如何快速传输文件

Mac, Windows和Linux电脑之间如何快速传输文件本文介绍的方法主要适用于在家庭环境中的多台电脑之间快速传输文件,比如家中有三台电脑分别是Windows, Mac和Linux系统,如果传输少量的小文件,那么可以直接使用微信等通讯软件就可以了。但是如果…

MySQL字符串类型

MySQL 中的字符串类型有 CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM、SET 等。 下表中列出了 MySQL 中的字符串数据类型,括号中的M表示可以为其指定长度。 VARCHAR 和 TEXT 类型是变长类型,其存储需求取决于列值的实际长度&#xff…

5000的台式计算机,预算5000的台式组装机配置清单_预算5000的台式组装机配置

5000的价格在游戏本里只能算是入门级别的。基本上3A游戏只能低特效运行,特效根本无法进行。但是台式电脑不一样。5000元基本可以流畅运行市面上所有游戏,中高特效,1080p分辨率。接下来边肖会给大家推荐预算5000的桌面组装机配置列表。1.带显示…

三菱d700变频器模拟量控制_三菱Q系列PLC,用CCLink控制变频器正反转和多段速

硬件、软件设置:参阅三菱PLC,CC-Link通信协议基础知识远程输入(RX)定义:Rxn0:正转中Rxn1:反转中Rxn2:运行中(端子RUN功能)Rxn3:频率到达(端子SU功能)Rxn4:过负荷报警(端子OL功能)Rxn…

MySQL创建数据表

创建数据表,指的是在已经创建的数据库中建立新表。 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。 创表语法 在 MySQL 中,可以使用 CREATE…