很多应用都是显示与隐藏密码的功能。

之前的项目都没这个功能要求,也没有专门研究这个。最近项目有加这个功能,我这里也刚好整理一下。

我的思路是设置EditText的InputType。代码如下:

 if (mPasswordVisible) {
//设置EditText的密码为可见的
edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
} else {
//设置密码为隐藏的
edtPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
}

运行代码,可以正常显示隐藏密码。

虽然我实现了这个功能,我还是很好奇别人是怎么实现这个功能的。

上网搜索一下,发现大部分人是用以下方法:

if (mPasswordVisible) {
//设置EditText的密码为可见的
edtPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
} else {
//设置密码为隐藏的
edtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
}

运行代码,同样可以正常显示隐藏密码。

以上两种方法都能实现这个功能,不过第二个方法太陌生了。。。

以上,还有一个问题,切换显隐后,光标会跳到最前面,为了解决这个问题,需要加上以下代码:

edtPassword.setSelection(edtPassword.getText().length());

完美解决问题。

Android之密码的显示与隐藏的更多相关文章

  1. Android文本输入框(EditText)切换密码的显示与隐藏

    package cc.c; import android.app.Activity; import android.os.Bundle; import android.text.Selection; ...

  2. js控制密码的显示与隐藏实例

    原理是建立2个input,一个type是text,一个type是password.在点击按钮时,这两input个的显示状态与val()的值在切换. html: <!DOCTYPE html> ...

  3. IOS swift实现密码的显示与隐藏切换

    最近做项目遇到一个需要做密码的显示与隐藏功能,简单从功能上讲是比较简单的,但是,ios有个恶心的BUG,就是在切换显示密码后再隐藏密码时输入就被清空了,这个非常不友好,为了解决这个问题,我在网上找了相 ...

  4. JS实现登录页密码的显示和隐藏功能

    在登录页经常会用到通过点击文本框的类似小眼睛图片来实现隐藏显示密码的功能,其实实现原理很简单,通过点击事件来改变input的type类型,具体过程看代码: 在没给大家分享实现代码之前,先给大家展示下效 ...

  5. Android 软键盘的显示和隐藏,这样操作就对了

    一.前言 如果有需要用到输入的地方,通常会有需要自动弹出或者收起软键盘的需求.开篇明义,本文会讲讲弹出和收起软键盘的一些细节,最终还会从源码进行分析. 想要操作软键盘,需要使用到 InputMetho ...

  6. js密码修改显示与隐藏效果

    一.添加input框 <form class="login_form"> <input class="password inputpwd" i ...

  7. android 软键盘的显示与隐藏问题的研究

    在android中,常常会和输入法的软件键盘交互.在Manifest文件中,系统给activity的一个属性-windowSoftInputMode来控制输入法的显示方式. 该属性提供了Activit ...

  8. el-input 标签中密码的显示和隐藏

    效果展示: 密码隐藏: 密码显示: 代码展示: 一:<el-input>标签代码 <el-form-item label="密码" prop="pass ...

  9. Android Visibility控件显示和隐藏

    Android控件显示和隐藏 visibility 可见(visible) XML文件:android:visibility="visible" Java代码:view.setVi ...

随机推荐

  1. user\db\table_privs\column_privs四张表的权限控制

    今天要做的测试是:user\db\table_privs\column_privs这四张权限表分别控制哪些级别的权限: 测试准备: [超级用户]root@'127.0.0.1' [操作库权限的用户]g ...

  2. css3动画特效集合

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...

  3. 微信接入时tomcat的端口调整

    必须以http://或https://开头,分别支持80端口和443端口. www.xx.com 等同于 www.xx.com:80 但tomcat默认端口是8080,需要修改为80 修改方法: TO ...

  4. js中对String去空格

    str为要去除空格的字符串: 去除所有空格: str = str.replace(/\s+/g,""); 去除两头空格: str = str.replace(/^\s+|\s+$/ ...

  5. Yeoman安装和使用详解

    Yeoman generator-react-webpack 一 什么是Yeoman Yeoman帮助我们创建项目,提供更好的工具来使我们的项目更多样化. Yeoman提供generator系统,一个 ...

  6. redis解决保存快照失败后redis无法写入的问题

    通过关闭配置项stop-writes-on-bgsave-error解决该问题. redis 127.0.0.1:6379> config set stop-writes-on-bgsave-e ...

  7. fresco加载本地图片、gif资源

    首先 来看看fresco 是个神马东西 https://github.com/facebook/fresco 这个是fresco的一个官方gifhub 官网为http://frescolib.org/ ...

  8. hive的 order by & distribute by & cluter by

    我们应该都清楚order by 的含义: 根据某个字段对输出的数据排序,因为只有一个reducer,所以查询效率较慢. 那么hive中,另外两个排序,distribute by和cluster by的 ...

  9. Java学习--循环语句1

    1. break public class BreakDemo{ // 完成一个四则运算的功能 public static void main(String args[]){ for(int i=0; ...

  10. hdu 1.3.1 FatMouse' Trade

    贪心的运用,主要看其比值,取最大值实现贪心... #include<cstdio> #include<algorithm> #include<vector> usi ...