现在的位置: 首页 > 综合 > 正文

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

2014年01月25日 ⁄ 综合 ⁄ 共 1374字 ⁄ 字号 评论关闭
//用户密码验证
	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显示的时候将后退键功能取消   就可以了 具体代码如上边所示:

抱歉!评论已关闭.