本周做项目时,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提示框相关推荐

  1. iOS开发:简单的Toast提示框实现

    今天小年,再分享一篇2018年度最后一篇博客,博主是以iOS开发出身,那就最后一篇博文就分享一下关于iOS的内容吧.iOS开发过程中,有些时候操作App的时候,需要给用户对应的响应提示操作,使用系统自 ...

  2. php js对话框,JavaScript_js弹出框、对话框、提示框、弹窗实现方法总结(推荐),一、JS的三种最常见的对话框- phpStudy...

    js弹出框.对话框.提示框.弹窗实现方法总结(推荐) 一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ==================== ...

  3. js弹出框、对话框、提示框、弹窗总结

    一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ========================//弹出对话框并输出一段提示信息functio ...

  4. JavaScript弹出框、对话框、提示框、弹窗总结

    JavaScript弹出框.对话框.提示框.弹窗总结. 1.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 =================== ...

  5. Jquery提示框效果(确认提示框)

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. php点击文字弹出js提示框,js弹出框、对话框、提示框、弹窗实现方法总结(推荐)...

    一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ======================== //弹出对话框并输出一段提示信息 funct ...

  7. android获取通知栏消息源代码,Android高仿UC浏览器和360手机卫士消息常驻栏(通知栏)(示例代码)...

    之前网上看了下自己定义消息栏,通知栏,了解到了Notification这个控件.发现UC浏览器等都是这样的类型,今天写个demo实现下.如图: 当中每一个button都有不同的功能.代码例如以下: p ...

  8. qml 自定义消息框_Qt qml 自定义消息提示框

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a844651990/article/d ...

  9. 弹出框之对话框和提示框,可共用代码

    弹出框: //对话框,title是标题文字,content是提示框内容,test是一个function(点击确定按钮触发的事件) function dialogBox(title,content,te ...

  10. 如何在html上做弹框效果,网页|利用提示框(Tooltip)实现弹窗效果

    一.提示框的运用 二.Tooltip简单介绍 提示工具(Tooltip)是一个插件,可以根据需求生成标记内容,但在默认情况下是把提示工具(tooltip)放在它们的触发元素后面.在bootstrap中 ...

最新文章

  1. 如何设计一门语言(四)——什么是坑(操作模板)
  2. node.js调用ejs模板,在浏览器上打印出ejs模板内代码的解决方案
  3. 赛锐信息:SAP img 文档
  4. 建立网站需要什么条件_教育学校网站建设有什么作用?学校建立网站为的是什么?...
  5. 计算机维护系统Win8PE,U盘启动计算机维护系统(Win8PEx64内核仅160M)
  6. DSF 洛谷 P1294 高手去散步
  7. 4999以内阿拉伯数字转罗马字符
  8. 【附源码】计算机毕业设计SSM七七美食汇
  9. JavaScript 根据身份证号获取年龄
  10. LeetCode题解(LCP03):机器人大冒险(Python)
  11. 打印机是共享的计算机显示脱机,win7系统连接网络共享打印机时出现脱机提示如何解决【图文】...
  12. 移动端统计分析工具Firebase、AppsFlyer、Adjust、Flurry、Tap stream、Kochava 、branch不完全对比分析
  13. 滴滴笔试毕业旅行——回溯法(dfs)
  14. MySQL 五.索引与算法
  15. python-qbittorrent库下载电影学习记录(含基本使用和常用函数)
  16. 中国酒店周刊 | 上海万信福朋喜来登、包头茂业万豪、武汉江夏万枫酒店开业...
  17. python展开 c函数中的宏预处理_Linux C语言结构体-学习笔记
  18. 【立体匹配之一】StereoBM
  19. 【机器视觉】整合:机器视觉基础知识汇总
  20. 江苏省重点软件企业信息汇总 排名不分先后

热门文章

  1. iOS面试--最新快手iOS面试题
  2. OA系统审批流程思路梳理
  3. 需求变更对软件质量的影响
  4. 精简版Android ProtoBuf入门
  5. repost ACM算法学习三境界---王国维人间词话
  6. maya python window_安装了Anaconda之后,Maya运行报错,Python 找不到 Maya 的 Python 模块...
  7. 证明指数函数的导数(a^x)`=a^xlna
  8. c51为啥要宏定义时钟_C51 程序中 #define 宏定义语句末尾一定要使用分号才能正确编译通过。_学小易找答案...
  9. vue项目结构文件介绍及项目运行流程
  10. 查询中国天气网api需要用到的城市代码