很多时候,我们需要使用AlertDialog弹出一个对话框,但系统的AlertDialog对话框一旦点击了按钮,就会退出,而有时候我们需要
在对话框中判断条件,条件不成立则对话框不消失,如弹出一个密码
框,当用户输入正确时,AlertDialog才消失并作相应操作,这时我们可以使用LayoutInflater自定义一个AlertDialog。代码如下
activity_main.xml

 <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" ><Button
        android:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="AlertDialog" />
</LinearLayout>

my_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#F5E058"android:orientation="vertical" ><LinearLayout
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="5dp" ><ImageView
            android:id="@+id/image"android:layout_width="50dp"android:layout_height="50dp"android:scaleType="centerInside" /><TextView
            android:id="@+id/text"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_gravity="center"android:gravity="center"android:text="已经加密,需要密码才能进入应用"android:textColor="#B70DFA"android:textSize="17sp" /></LinearLayout><EditText
        android:id="@+id/dialog_edt"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入应用保护密码"android:padding="5dp" /><LinearLayout
        android:layout_width="match_parent"android:layout_height="fill_parent"android:layout_gravity="center"android:gravity="center" ><Button
            android:id="@+id/btn_cancel"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_gravity="center"android:layout_weight="1"android:gravity="center"android:onClick="click"android:text="取消" /><Button
            android:id="@+id/btn_determine"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_gravity="center"android:layout_weight="1"android:gravity="center"android:onClick="click"android:text="确定" /></LinearLayout>
</LinearLayout>

MainActivity.java

package com.example.demo_layoutinflater;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {private Button button;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {showMyDialog();}public void showMyDialog() {AlertDialog.Builder builder;AlertDialog alertDialog;Context mContext = MainActivity.this;LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);View view = inflater.inflate(R.layout.my_dialog, null);ImageView image = (ImageView) view.findViewById(R.id.image);image.setImageResource(R.drawable.attention);Button btn = (Button) view.findViewById(R.id.btn_determine);Button btn2 = (Button) view.findViewById(R.id.btn_cancel);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "你好", 0).show();}});btn2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "滚蛋", 0).show();}});builder = new AlertDialog.Builder(mContext);builder.setView(view);alertDialog = builder.create();alertDialog.show();}
}

这时,如果不在按钮事件中添加相应操作,点击多次按钮弹出框也不会消失

AlertDialog弹出对话框条件不成立不消失相关推荐

  1. AlertDialog弹出对话框

    AlertDialog弹出对话框 以下主要代码: package com.example.alertdialog;import android.app.Activity; import android ...

  2. Android开发之AlertDialog(实现弹出对话框)

    文章目录 基本框架 构造方法 添加按钮 设置自定义布局 基本框架 我们在xml中添加一个按钮用来唤出对话框: <?xml version="1.0" encoding=&qu ...

  3. 安卓飞机大战(三) 弹出对话框

    在游戏时,不管是退出游戏还是选择战机,都要弹出一个对话框,需要以下代码 按一个按钮弹出对话框 Layout文件:(添加一个按钮) <Button         android:id=" ...

  4. [python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录

    在我们使用Selenium Python制作自动爬虫和网页自动测试的时候,通常会遇到弹出新的窗体或对话框的时候,此时你捕获的窗体已经被打断,从而干扰你的爬虫. 那怎么解决这个问题呢? 本篇文章主要记录 ...

  5. android 弹出对话框时显示键盘

    今天,简单讲讲如何在弹出自定义的对话框时,弹出软键盘. 之前,我讲了如何制作自定义的对话框,现在,如果在弹出对话框时,自动弹出软键盘,将光标直接聚焦到自定义对话框的输入框内,那该怎么做呢? 在网上搜索 ...

  6. Android之PopupWindow弹出对话框

    Android的对话框常用的有两种:PopupWindow和AlertDialog. popupWindow是一个阻塞式的弹出框,这就意味着在我们退出这个弹出框之前,程序会一直等待,,这就意味着在我们 ...

  7. python win10 捕获 弹出窗口_[python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录...

    在我们使用Selenium Python制作自动爬虫和网页自动测试的时候,通常会遇到弹出新的窗体或对话框的时候,此时你捕获的窗体已经被打断,从而干扰你的爬虫. 那怎么解决这个问题呢? 本篇文章主要记录 ...

  8. js“弹出对话框”和“弹出窗口”详解

    JS中showModalDialog 详细使用 基本介绍:           showModalDialog()         (IE 4+ 支持)           showModelessD ...

  9. android弹出对话框

    最近因为项目需求,要在一个service上面弹出一个菜单,菜单响应select事件,所以花了点时间把android弹出Dialog的各种方式都看了一下. 目前学习到的android有三种方式弹出对话框 ...

最新文章

  1. 51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串
  2. 点击图片弹出固定或自适应窗口
  3. java字符串底层实现_「JAVA」细述合理创建字符串,分析字符串的底层存储,你不该错过...
  4. PHP文件操作---文件file
  5. CentOS:linux开放指定端口命令
  6. PHP项目:如何用PHP高并发检索数据库?
  7. Kinect+OpenNI学习笔记之13(Kinect驱动类,OpenCV显示类和手部预分割类的设计)
  8. python练习题及答案-Python练习题
  9. python日记Day12——numpy速查中文手册
  10. div css3 border-radius 之圆角 div圆角 图片圆角
  11. ${pram.name}
  12. Blender几个简单建模
  13. Eclipse详细设置护眼背景色和字体(Hermit)颜色并导出
  14. 怎么恢复我在计算机里删掉的文档,如题,如何彻底删除电脑中的文件,使文件不能恢复?(我的方式是直接? 爱问知识人...
  15. python语言编写爬虫_自写Python小爬虫一个 - 『编程语言区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...
  16. S3C2440之IIC
  17. PyQt5基础使用!(三)
  18. 计算机类毕业参考文献(java开发)
  19. java selector 源码_Java NIO——Selector机制源码分析---转
  20. ICO和IPO的区别

热门文章

  1. 淘宝开放平台淘宝店铺OAuth2.0订单商品接口接入解决方案
  2. MyBatis Generate的使用
  3. HTML框架(iframe )限制
  4. 利用x509数字证书实现数据渗透
  5. Java校验注解@NotEmpty,@NotBlank,@NotNull的使用方法和区别
  6. 手机内部零件名称图解_激光焊接工艺在手机零部件加工行业的应用
  7. 适合做python的视频_为什么说python适合做入门语言?老男孩Python视频
  8. Ttp-244标签机打印时怎么选择热敏纸
  9. 2020/11/13·Java·人脸识别一键登录/注册
  10. 最小环 floyd java_干货|Floyd求最小环(CF Shortest Cycle)