一、目标

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

二、代码实现。

  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             @Override
5             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对象,所以需要新建该类型的成员变量,然后在OnCreate方法中通过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

转载于:https://www.cnblogs.com/Red-Shark/p/4248285.html

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

  1. Android实例-手机安全卫士(三十五)-来电号码显示归属地

    一.目标 1.显示来电号码的归属地: 2.可在"设置中心"设置"是否启用来电号码归属地显示" 二.代码实现 (以服务的形式监听来电状态) 1.在项目服务包中新增 ...

  2. Android实例-手机安全卫士(四十一)-选择自定义Toast背景

    一.目标 通过对话框选择并保存自定义的Toast背景        二.代码实现 1.复制layout文件夹中的model_setting_item.xml文件,以其为模板进行修改(取名为model_ ...

  3. Android实例-手机安全卫士(一)-启动界面

    一.目标. 1.启动时全屏显示,并获得当前应用版本号: 2.美化字体:颜色和文字阴影: 3.添加一个ProgressBar以增加用户体验. 效果如图 二.编写过程. 1.布局.在布局文件中增加一个Te ...

  4. Android实例-手机安全卫士(二十四)-绑定SIM卡

    一.目标. 使用TelephonyManager对象获取手机相关信息,用SharedPreferences对象保存配置信息. 二.代码实现. 1.为"绑定SIM卡"按钮添加id(取 ...

  5. Android实例-手机安全卫士(三十六)-根据Service是否开启确定CheckBox选中状态

    一.目标 1.根据service是否在后台运行情况来确定CheckBox的选中状态: 2.解决"设置中心"的"开启来电号码显示归属地"功能在退出程序再进入时选中 ...

  6. 基于Android的手机安全卫士的开发

    基于Android的手机安全卫士的开发 开发环境 处理器:Intel® Core™ i5-5200U CPU 2.20GHz 内存:4GB 硬盘:500GB 操作系统:Windows 7中文版,64位 ...

  7. 基于android平台的手机安全卫士的设计与实现 开题报告,开题报告-基于android的手机安全卫士的设计与开发.doc...

    毕业设计开题报告 题 目: 基于Android的手机安全卫士的设计与开发 专 业 计算机科学与技术 学 生 姓 名 班 级 学 号 指 导 教 师 指 导 单 位 电气信息工程学院 专 业 负 责 人 ...

  8. 【边做项目边学Android】手机安全卫士07-手机防盗之进入限制

    上次写到在进入手机但·防盗界面时需要有密码限制,首先第一次进入时会弹出对话框提示用户设置密码:再次进入时会要求用户输入密码:这次来具体实现上述功能. 首次登录,设置密码 首先,我们的密码是保存在Sha ...

  9. android高德地图自定义地图,(android地图开发) 高德地图自定义对话框

    截图效果: 布局文件: android:layout_width="fill_parent" android:layout_height="fill_parent&quo ...

最新文章

  1. TP5部署服务器问题总结
  2. windows消息队列。DispatchMessage。 PostMessage
  3. Java第三大的数,Java通过排序找出数组第三大数字
  4. 图片序列化和反序列化成图片文件(代码)
  5. 美汽车销售商使用RFID汽车,加快销售速度
  6. vue2.0关于添加属性后视图不能更新的问题
  7. C++ opengl 矩阵的压栈与出栈
  8. 3-3numpy:向量与矩阵的计算,矩阵的逆
  9. Deskreen – 将电脑屏幕共享到浏览器中,做第二块屏幕[Win/macOS/Linux]
  10. 一步一步写算法(之链表排序)
  11. 深度学习-吴恩达-笔记-2-神经网络的编程基础
  12. python在哪里写代码-python的代码在哪编写
  13. Linux命令中的常用符号解释(zz)
  14. 同余方程(Day 2)
  15. MFC TeeChart 用法整理二
  16. 4399ATAPI讲解用例配置篇
  17. Elk-Metricbeat配置Tomcat的日志分析 (Metricbeat-part3)
  18. QT设置按钮QPushButton上图片加文字
  19. 监控和路由器不在同一个ip段_如何把二级路由器当交换机使用
  20. android reboot重启分析

热门文章

  1. sql中exists替换in的区别
  2. Python为何如此优秀?斯坦福教授告诉你!
  3. 看似无参却有参-----JS中的函数传参
  4. [USACO4.2]Drainage Ditches
  5. 全新 Win 9 概念 界面漂亮极了
  6. ORA-28056:Writing audit records to Windows Even...
  7. 由铁路订票系统联想到的
  8. Java社区目前的现状——交易
  9. Android Handler.removeCallbacksAndMessages(null)的作用
  10. Sysnoise5.6安装教程