EditText输入密码的显示和隐藏

简介:

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点

密码的显示和隐藏是一个很常见的小知识点,主要包括2个部分:小图标的变化和EditText输入密码的显示和隐藏

小图标的变化

小图标的变化一般也有2种实现方式:

(1)ImageView或ImageButton

这种方式需要声明一个全局的布尔型变量作为标志位,记录当前是显示密码还是隐藏密码

实现步骤:

  • 首先当然是布局中添加了ImageView或ImageButton
  • 然后在代码中设置点击监听,根据标志位在代码中动态的替换图片,改变EditText的显示状态
(2)ToggleButton

这种方式需要写一个selector文件,根据state_checked值设置不同的图片

实现步骤:

  • 首先布局中添加ToggleButton
  • 然后代码中为ToggleButton添加监听,这里的监听就不是上面的点击监听了,而是CompoundButton.OnCheckedChangeListener
  • ToggleButton被点击后就会回调onCheckedChanged方法,在这个方法里可以改变EditText的显示状态

EditText输入内容的显示和隐藏

也有2种方式可以实现:修改TransformationMethod和动态修改InputType

(1)修改TransformationMethod

这种方式最简单,推荐这种

显示密码:

edtPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());

隐藏密码:

edtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
(2)修改InputType

这种方式有个问题就是密码的显示隐藏状态改变时字间距会变化,大家可以试一下。还是推荐用上面的方式。

显示密码:

mETPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

隐藏密码:

mETPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

                       欢迎关注我的微信公众号,和我一起每天进步一点点!

AntDream

目录
相关文章
|
7月前
|
JavaScript 前端开发 数据安全/隐私保护
获取焦点后隐藏提示内容的输入框
获取焦点后隐藏提示内容的输入框
63 0
|
XML 数据安全/隐私保护 数据格式
文本输入编辑框 EditText
编辑框 EditText 用来接收软件键盘输入的文字,例如用户名、密码、评价内容等,它是由文本视图派生而来的,除了TextView 已有的各种属性和方法,EditText还支持下列XML属性
文本输入编辑框 EditText
|
Android开发 数据安全/隐私保护
EditText(输入框)详解
上一节中我们学习了第一个UI控件TextView(文本框),文中给出了很多实际开发中可能遇到的一些需求 的解决方法,应该会为你的开发带来便利,在本节中,我们来学习第二个很常用的控件EditText(输入框);和TextView非常类似,最大的区别是:EditText可以接受用户输入!
456 0
|
Android开发
Android点击空白区域,隐藏输入法软键盘
Android点击空白区域,隐藏输入法软键盘
670 0
|
存储 缓存 Android开发
Android EditText输入框实现下拉且保存最近5个历史记录
Android EditText输入框实现下拉且保存最近5个历史记录
447 0
Android EditText输入框实现下拉且保存最近5个历史记录
|
Android开发
在Android开发中如何移除EditText上的输入焦点
  当我们创建一个带EditText 或 AutoCompleteTextView的视图时,在加载视图时总是会把输入的焦点自动移动到第一个输入框。如下图所示:   下面是mail.xml布局文件: 1.
1304 0
|
Android开发 数据安全/隐私保护
Android 实现显示密码和隐藏密码
开发中遇到了这个问题,特此记录下。 效果图: if (!isshowpwd) { isshowpwd = true; etLoginPwd.
1001 0