android仿ios消息框,Android仿IOS提示框
本周做项目时,Android自带的提示框太难看,这里做个仿IOS的提示框:
效果图:
一,创建一个自定义的布局文件(其中,像颜色,文字,最好在values文件下创建,然后引入,这里就直接创建):
layout_dialog.xml:
二、创建一个工具类,可能经常使用,进行封装:
DialogUtil:
public class DialogUtil {
private Context mContext;
private Activity mActivity;
private OnItemClickListener mOnItemClickListener;
public DialogUtil(Activity activity, Context context){
mActivity = activity;
mContext = context;
}
/** 定义一个接口,当用户点击按钮时,可在主页面进行逻辑操作 */
public interface OnItemClickListener{
/** 取消 */
void onItemCancelClick();
/** 确定 */
void onItemConfirmClick();
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener ){
this.mOnItemClickListener=onItemClickListener;
}
/** 提示框,自定义标题,内容,按钮 */
public void dialog(String title,String content, String cancelString, String confirmString){
LayoutInflater inflater = mActivity.getLayoutInflater();
View view = inflater.inflate(R.layout.layout_dialog, null);
TextView titleView = view.findViewById(R.id.vi_title);
TextView contentVIew = view.findViewById(R.id.vi_content);
TextView cancelButtonView = view.findViewById(R.id.vi_cancel_button);
TextView confirmButtonView = view.findViewById(R.id.vi_confirm_button);
titleView.setText(title);
contentVIew.setText(content);
cancelButtonView.setText(cancelString);
confirmButtonView.setText(confirmString);
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
final Dialog dialog = builder.create();
dialog.setCancelable(false);
dialog.show();
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
/** 设置宽为屏幕的0.8大小 */
lp.width = (int) (mActivity.getWindowManager().getDefaultDisplay().getWidth() * 0.8);
dialog.getWindow().setAttributes(lp);
/** 自定义布局应该在这里添加,要在dialog.show()的后面 */
dialog.getWindow().setContentView(view);
cancelButtonView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnItemClickListener.onItemCancelClick();
dialog.dismiss();
}
});
confirmButtonView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnItemClickListener.onItemConfirmClick();
dialog.dismiss();
}
});
}
}
三、测试
private void dialog(){
DialogUtil dialogUtil = new DialogUtil(MainActivity.this,MainActivity.this);
dialogUtil.dialog("提示","欢迎使用App","取消","确定");
dialogUtil.setOnItemClickListener(new DialogUtil.OnItemClickListener(){
@Override
public void onItemCancelClick() {
Log.d("onItemClick","你点击了取消");
}
@Override
public void onItemConfirmClick() {
Log.d("onItemClick","你点击了确定");
}
});
}
/** 添加一个按钮进行测试 */
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.dialog_hint:
dialog();
break;
}
}
效果:
点击取消:
点击确定:
android仿ios消息框,Android仿IOS提示框相关推荐
- iOS开发:简单的Toast提示框实现
今天小年,再分享一篇2018年度最后一篇博客,博主是以iOS开发出身,那就最后一篇博文就分享一下关于iOS的内容吧.iOS开发过程中,有些时候操作App的时候,需要给用户对应的响应提示操作,使用系统自 ...
- php js对话框,JavaScript_js弹出框、对话框、提示框、弹窗实现方法总结(推荐),一、JS的三种最常见的对话框- phpStudy...
js弹出框.对话框.提示框.弹窗实现方法总结(推荐) 一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ==================== ...
- js弹出框、对话框、提示框、弹窗总结
一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ========================//弹出对话框并输出一段提示信息functio ...
- JavaScript弹出框、对话框、提示框、弹窗总结
JavaScript弹出框.对话框.提示框.弹窗总结. 1.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 =================== ...
- Jquery提示框效果(确认提示框)
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- php点击文字弹出js提示框,js弹出框、对话框、提示框、弹窗实现方法总结(推荐)...
一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ======================== //弹出对话框并输出一段提示信息 funct ...
- android获取通知栏消息源代码,Android高仿UC浏览器和360手机卫士消息常驻栏(通知栏)(示例代码)...
之前网上看了下自己定义消息栏,通知栏,了解到了Notification这个控件.发现UC浏览器等都是这样的类型,今天写个demo实现下.如图: 当中每一个button都有不同的功能.代码例如以下: p ...
- qml 自定义消息框_Qt qml 自定义消息提示框
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a844651990/article/d ...
- 弹出框之对话框和提示框,可共用代码
弹出框: //对话框,title是标题文字,content是提示框内容,test是一个function(点击确定按钮触发的事件) function dialogBox(title,content,te ...
- 如何在html上做弹框效果,网页|利用提示框(Tooltip)实现弹窗效果
一.提示框的运用 二.Tooltip简单介绍 提示工具(Tooltip)是一个插件,可以根据需求生成标记内容,但在默认情况下是把提示工具(tooltip)放在它们的触发元素后面.在bootstrap中 ...
最新文章
- 如何设计一门语言(四)——什么是坑(操作模板)
- node.js调用ejs模板,在浏览器上打印出ejs模板内代码的解决方案
- 赛锐信息:SAP img 文档
- 建立网站需要什么条件_教育学校网站建设有什么作用?学校建立网站为的是什么?...
- 计算机维护系统Win8PE,U盘启动计算机维护系统(Win8PEx64内核仅160M)
- DSF 洛谷 P1294 高手去散步
- 4999以内阿拉伯数字转罗马字符
- 【附源码】计算机毕业设计SSM七七美食汇
- JavaScript 根据身份证号获取年龄
- LeetCode题解(LCP03):机器人大冒险(Python)
- 打印机是共享的计算机显示脱机,win7系统连接网络共享打印机时出现脱机提示如何解决【图文】...
- 移动端统计分析工具Firebase、AppsFlyer、Adjust、Flurry、Tap stream、Kochava 、branch不完全对比分析
- 滴滴笔试毕业旅行——回溯法(dfs)
- MySQL 五.索引与算法
- python-qbittorrent库下载电影学习记录(含基本使用和常用函数)
- 中国酒店周刊 | 上海万信福朋喜来登、包头茂业万豪、武汉江夏万枫酒店开业...
- python展开 c函数中的宏预处理_Linux C语言结构体-学习笔记
- 【立体匹配之一】StereoBM
- 【机器视觉】整合:机器视觉基础知识汇总
- 江苏省重点软件企业信息汇总 排名不分先后
热门文章
- iOS面试--最新快手iOS面试题
- OA系统审批流程思路梳理
- 需求变更对软件质量的影响
- 精简版Android ProtoBuf入门
- repost ACM算法学习三境界---王国维人间词话
- maya python window_安装了Anaconda之后,Maya运行报错,Python 找不到 Maya 的 Python 模块...
- 证明指数函数的导数(a^x)`=a^xlna
- c51为啥要宏定义时钟_C51 程序中 #define 宏定义语句末尾一定要使用分号才能正确编译通过。_学小易找答案...
- vue项目结构文件介绍及项目运行流程
- 查询中国天气网api需要用到的城市代码