先看效果:

功能:后台webview访问andorid某个js函数时,弹出AlertDialog弹出框。


一、创建Layout
1.右键 Android studio 项目的layout,在弹出框中选择 Layout Resource File,如图

输入文件名,默认LinnerLayout。
2. 打开此文件,选择design模式。
3. 选择构件中的Widgets-TextView,拖拽至Component Tree中的LinnerLayout下。同时,右侧的Properties可以设置该组件的一些属性,例如文字、字体大小,加粗、对齐方式等。
4. 依次逐渐增加子LinnerLayout布局、EditText构件等。
5. 最终结构如下图

生成的 cert_apply.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:weightSum="1"android:orientation="vertical"><TextViewandroid:id="@+id/textView2"android:layout_width="348dp"android:layout_height="wrap_content"android:layout_weight="0.09"android:text="\r\n   请设置证书密码"android:textSize="21sp"android:textStyle="bold" /><TextViewandroid:id="@+id/textView"android:layout_width="match_parent"android:layout_height="wrap_content" /><Viewandroid:layout_width="match_parent"android:layout_height="2dp"android:background="#e6444a"/><TextViewandroid:id="@+id/请设置密码"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="0.03"android:lineSpacingExtra="8sp"android:textAlignment="textStart"android:textSize="20sp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="53dp"android:orientation="horizontal"><TextViewandroid:id="@+id/密码"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="密码:"android:textAlignment="center"android:textSize="19sp" /><EditTextandroid:id="@+id/certPin"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="0.46"android:hint="6~20为数字字母"android:ems="10"android:maxLength="20"android:theme="@style/MyEditText"android:inputType="textPassword" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="54dp"android:orientation="horizontal"><TextViewandroid:id="@+id/确认密码"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="确认密码:"android:textAlignment="center"android:textSize="19sp" /><EditTextandroid:id="@+id/certPinConfirm"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:ems="10"android:hint="6~20为数字字母"android:maxLength="20"android:theme="@style/MyEditText"android:inputType="textPassword" /></LinearLayout></LinearLayout>

二、java类的写法

//设置证书密码public static void certApplyWithPinInput(final String userid){LayoutInflater layoutInflater = LayoutInflater.from(mainActivity.getApplicationContext());final View longinDialogView = layoutInflater.inflate(R.layout.cert_apply, null);//找到定义的布局AlertDialog.Builder builder = new AlertDialog.Builder(mainActivity);builder.setView(longinDialogView);//设置布局builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {//设置监听内部类@Overridepublic void onClick(DialogInterface dialog, int which) {EditText edit = (EditText)longinDialogView.findViewById(R.id.certPin);//取到布局中的构件EditText editConfirm = (EditText)longinDialogView.findViewById(R.id.certPinConfirm);String pin = edit.getText().toString();String pinConfirm = editConfirm.getText().toString();if(StringUtils.isBlank(pin)||StringUtils.isBlank(pinConfirm)){showMsgBox("错误", "密码不能为空");return;}else if(!pin.equals(pinConfirm)){showMsgBox("错误", "两次密码输入不一致");return;}CertApply(userid,pin);}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(mainActivity.getApplicationContext(), "你点了取消", Toast.LENGTH_SHORT).show();}});builder.setCancelable(true);    //设置按钮是否可以按返回键取消,false则不可以取消AlertDialog dialog = builder.create();  //创建对话框dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏dialog.show();//展示Alert}

此外,还需要定义JS。

   @JavascriptInterfacepublic static void CertApply(String userId){CertUtils.certApplyWithPinInput(userId);}

在主Activity中,初始化一下。

JsInterface ji = new JsInterface(this);
mWebview.addJavascriptInterface(ji, "AndroidWebView");

简单分享一下,欢迎留言讨论。

安卓如何使用layout布局的弹出框AlertDialog相关推荐

  1. android自定义弹框效果合集,android 自定义弹出框AlertDialog ,很炫的哦

    于是就小小的模仿了下自己写了这个这样的效果, 主要代码如下: dlg = new AlertDialog.Builder(context).create(); dlg.show(); dlg.getW ...

  2. android自定义模态框,安卓开发自定义弹出框的简单方式(纯代码布局)

    弹出框在安卓开发中是经常会用到的,如果单纯的只是用安卓自带的对话框模式肯定是十分单调的. 再来我看来安卓一定有一个功能让我们像Layout添加Layout一样把Layout添加到提示框里面. 所以忘了 ...

  3. android弹出框自定义按钮,安卓(kotlin)自定义弹出框

    在安卓开发中,我们经常会遇到这种情况,就是可爱的UI们设计了一套属于我们自己风格的弹出框,为了彰显我们自己的风格,使用自动的dialog当然满足不了我们的需求,所以还是得这基础上写出我们自己的提示框, ...

  4. c语言获取安卓弹窗,Android实现信息弹出框

    本文实例为大家分享了Android实现信息弹出框的具体代码,供大家参考,具体内容如下 layout下的dialog_common_layout.xml android:layout_width=&qu ...

  5. bootstrap中轮播图、模态框、提示框/弹出框、滚动监听、弹性布局、响应式flex、多媒体对象

    轮播图: bootstrap封装了轮播图的功能,其具体如下: 类名 描述 .carousel 创建一个轮播图块的容器,实质是做布局用:且此容器应该有一个di属性,其属性值提供给下面左右按钮href锚点 ...

  6. 个人中心 (二) 01-编辑资料-基础布局-Popup弹出层-底部弹出-头像男女时间 DatetimePicker时间选择转换-dayjs(value).format('YYYY-MM-DD')

    个人中心-编辑资料-基础布局-Popup 弹出层-底部弹出模式-头像-男女-时间 & DatetimePicker 时间选择-年月日模式 & dayjs(value) 转换成日期对象, ...

  7. 手写弹出框,设置遮罩,布局设计。

    传统的设计弹出框和遮罩 <template> <div> <div class="这里是内容"> <div class="这里是 ...

  8. 基于HTML5 Canvas 实现弹出框

    2019独角兽企业重金招聘Python工程师标准>>> 用户鼠标移入时,有弹出框出现,这样的需求很常见.这在处理HTML元素实现时简单,但是如果是对HTML5 Canvas 构成的图 ...

  9. jsp + js + 前端弹出框

    在项目中,前端页面我们时常需要各种各样的弹出框: 1.alert对话框:显示含有给定消息的"JavaScript Alert"对话框 代码: var a = "Hello ...

最新文章

  1. USB-Flash MX-程序员2004合订本
  2. 帮朋友招一个IM开发人员
  3. 【设计模式】抽象工厂模式 ( 简介 | 适用场景 | 优缺点 | 产品等级结构和产品族 | 代码示例 )
  4. android dumpsys 分析,Android开发调试性能分析工具:dumpsys
  5. 10.2-3 ifupifdown:激活与禁用网络接口
  6. Windows2003下面的批量创建随机用户程序(.NET多线程)
  7. chrome 开发工具_我最喜欢的Chrome开发工具提示和技巧
  8. php rewinddir(),PHP rewinddir() 函数 ——jQuery中文网
  9. C#.NET软件项目中程序开发外包经验分享【从接包者转变为发包者】
  10. 485转4-20mA信号转换0-10v5v电压电流采集模块
  11. 指数基金投资从入门到精通——阅读笔记
  12. python math类
  13. 怎么从头开始构建一个基于web浏览器的云游戏平台--前言——带目录
  14. WT2605-24SS音频解码芯片,实现宠物(玩具)喂食器远程更新语音技术方案解析
  15. 微软语言包实现汉字转拼音
  16. 深圳内推 | 香港中文大学(深圳)路广利老师招聘NLP方向研究助理
  17. 尊贤、谦虚、谨慎、交友、有恒、微渐、慎始终、因果
  18. 《微机原理与接口技术》复习参考资料,期末考试和专接本适用
  19. Excel中按颜色求和,一键完成。可以按背景色求和也可以按条件格式颜色求和
  20. python Scrapy Selenium PhantomJS 爬取微博图片

热门文章

  1. 怎么成为解决问题的高手
  2. 学计算机的能制造芯片,黑科技:木头造计算机芯片 还能降解
  3. 计算机显示磁盘0是什么意思,win10磁盘百分百,win10磁盘0是什么意思
  4. 日语学习资料下载 N5—N1都有
  5. 如何在Windows 7和Vista之间共享文件和打印机
  6. 新⼀代USDP开源套件,可替代CDH的免费大数据套件平台及架构选型
  7. CSS入门系列(一)概述和html结合的方式
  8. 【Python入门教程】第69篇 写入文本文件
  9. Cobbler自动化部署
  10. MySQL 数据库下载(windows)