博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android实例-手机安全卫士(十一)-自定义对话框点击事件处理
阅读量:5067 次
发布时间:2019-06-12

本文共 2794 字,大约阅读时间需要 9 分钟。

一、目标

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

 

二、代码实现。

  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对象,所以需要新建该类型的成员变量,然后在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

你可能感兴趣的文章
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
css3动画属性
查看>>
Mongodb 基本命令
查看>>
控制文件的备份与恢复
查看>>
软件目录结构规范
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>