首页 > 代码库 > Android实例-手机安全卫士(十一)-自定义对话框点击事件处理

Android实例-手机安全卫士(十一)-自定义对话框点击事件处理

一、目标

   在弹出的自定义对话框中,当点击“确认”时,保存密码,关闭对话框;当点击“取消”时关闭对话框。同时,如果不输入密码或输入密码错误则弹出相应的提示。

 技术分享

二、代码实现。

  1、在主界面代码类(HomeActivity)中定义设置防盗密码对话框中的对应TextView、Button等成员变量,并在显示设置防盗密码对话框方法(showSetPwdDialog)中通过view.findViewById方法找到对应的组件;

  2、为“取消”按钮设置取消操作的监听事件并进行处理。通过setOnClickListener(OnClickListener l)方法设置监听事件,参数new OnClickListener出来;

    ①.在对话框采用show()方法时会返回AlertDialog对象,所以在主代码中新建成员变量(alertDialog),然后接收返回的AlertDialog对象;

    ②.在OnClickListener中的onClick方法中,通过AlertDialog对象的dismiss()方法使对话框消失。

“取消”按钮设置监听事件的方法:

技术分享
1 //设置点击“取消”使对话框消失的点击事件2         setpwddialog_bt_cancel.setOnClickListener(new OnClickListener() {3             4             @Override5             public void onClick(View v) {6                 alertDialog.dismiss();7             }8         });
View Code

  3、为“确认”按钮设置设置监听事件。通过setOnClickListener(OnClickListener l)方法设置监听事件,参数new OnClickListener出来;

    ①.取出输入框内的密码。通过TextView对象的getText()得到文本并通过toString()转成字符串再通过trim()去除空格,得到String对象的输入密码;

    ②.同理取得确认框中密码。

    ③.判断密码情况。如果都为空(通过TextUtils.isEmpty(string)方法判断)则提示相关信息。如果不为空且两个密码一致(通过equals方法判断),则保存密码,对话框消失,并进入手机防盗页面。

      ③.1 保存密码。采用SharedPreferences对象,所以需要新建该类型的成员变量,然后通过getSharedPreferences(String name, int mode),设置保存密码文件(String name)所在的路径和类型( int mode),再通过edit()获取一个Editor对象(取名editor)。再通过Editor对象(editor)的putString(String key, String value)方法放入密码(密码采用String类型),最后Editor对象(editor)的commit()方法提交。

      ③.2 取消对话框。通过AlertDialog对象的dismiss()方法使对话框消失。

      ③.3 进入手机防盗页面(后续章节介绍)。

“确认”按钮设置监听事件的方法:

技术分享
 1 setpwddialog_bt_conf.setOnClickListener(new OnClickListener() { 2              3             @Override 4             public void onClick(View v) { 5                 //得到输入框中的密码 6                 String password = setpwddialog_et_pwd.getText().toString().trim(); 7                 String password_conf = setpwddialog_et_pwd_conf.getText().toString().trim(); 8                 if(TextUtils.isEmpty(password)||TextUtils.isEmpty(password_conf)){ 9                     //判断输入的密码非空,则提示相关信息10                     Toast.makeText(HomeActivity.this, "输入有误,请重新输入", 0).show();11                 }else if(password.equals(password_conf)){12                     //两个输入的密码相等,则保存密码,对话框消失,并进入手机防盗页面。密码采用SharedPreferences对象以String类型保存13                     sp = getSharedPreferences("safe password", Activity.MODE_PRIVATE);14                     Editor editor = sp.edit();                    15                     editor.putString("password", password);16                     editor.commit();17                     alertDialog.dismiss();18                     Toast.makeText(HomeActivity.this, "密码设置成功,保存完成", 0).show();19                 }else{20                     Toast.makeText(HomeActivity.this, "密码不一致", 0).show();21                     return;22                 }23             }24         });
View Code

 

Android实例-手机安全卫士(十一)-自定义对话框点击事件处理