给程序增加一个密码验证的功能,取消后退键的效果

本文详细阐述了在程序中实现密码验证功能的过程,并通过创建对话框来展示密码输入及确认逻辑。重点解决了用户在输入密码后点击后退键导致对话框消失的问题,通过设置对话框不可取消属性来保持对话框的可见性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//用户密码验证
	public void validate() {
		XMLPaselUtils utils = new XMLPaselUtils(this);  //密码保护 解析xml文件的工具类 用的是pull解析
		final Setter setter = utils.read();  //我自己定义了一个bean,用来保存xml中保存的所有的配置信息,这样感觉在程序中使用比较方便 哈哈是个笨方法
		if(setter.getPassword()!=null && setter.getPassword().trim().length()>0){
			View addView = getLayoutInflater().inflate(R.layout.reg, null);
			final EditText reg_password = (EditText) addView.findViewById(R.id.reg_password);
			
			android.content.DialogInterface.OnClickListener oklistener = new android.content.DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int which) {
					boolean reg = setter.getPassword().trim().equals(reg_password.getText().toString());
					if(!reg){
						//密码不正确
						mainActivity.this.finish();
						}
				}
			};
			android.content.DialogInterface.OnClickListener canclelistener = new android.content.DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int which) {
					mainActivity.this.finish();
				}
			};
			new AlertDialog.Builder(this).setCancelable(false) // 在dialog显示的时候将后退键功能取消
    		.setTitle("确认")
    		.setView(addView)
    		.setPositiveButton(R.string.okbutton, oklistener)
    		.setNegativeButton(R.string.canclebutton, canclelistener)
    		.show();
		}

我在写程序的时候,当增加密码验证的时候,效果如下     但是在这个时候如果我点击后退按钮,密码输入框就会消失,就能够进入到程序进行操作了。呵呵,但是看到这个问题的时候,感觉自己真好笑,居然能犯这种错误!

后来自己想了方法重写后退键的方法,也是不行,主要是感觉重写的后退键按钮效果是在activity上的,而不是作用在这个dialog上的,后来更好笑的就是明白了,很简单的一个方法,就是在自己的new AlertDialog.Builder(this)后面增加 .setCancelable(false) // 在dialog显示的时候将后退键功能取消   就可以了 具体代码如上边所示:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值