Android明密文切换
前言:
在我们的登录界面经常会遇到查看自己输入密码是否正确,就会用到明密文切换
正文:
我们先写出xml文件文件中的代码,不用过多解释
- <EditText
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="请输入密码"
- android:inputType="textPassword"
- android:ems="10"
- android:id="@+id/input"/>
- <CheckBox
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="查看密码"
- android:id="@+id/checkbox"
- android:layout_below="@+id/input"
- android:layout_alignParentRight="true"
- android:layout_alignParentEnd="true" />
接下来我们先初始化控件,然后对CheckBox设置监听器,使用匿名类,在重写onCheckedChanged方法中,如果点击了CheckBox按钮,则CheckBox对象调用setTransformationMethod方法,方法中的参数用到HideReturnsTransformationMethod
类直接调用静态方法getInstance()
如果要再次转变为密文的形式,和上面不同的是setTransformationMethod方法中参数为PasswordTransformationMethod类,然后该类直接调用静态方法getInstance()
这样虽然能实现明密文切换,但是切成明文后,在输入密码则会在开头输入,所以我们得进行接下来的操作
- edittext.setSelection(edittext.getText().length());
这样就可以在切换为明文后继续在之前输入的密码后输入密码
完整代码为:
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.method.HideReturnsTransformationMethod;
- import android.text.method.PasswordTransformationMethod;
- import android.widget.CheckBox;
- import android.widget.CompoundButton;
- import android.widget.EditText;
- import android.widget.RadioButton;
- import android.widget.RadioGroup;
- import android.widget.Toast;
- public class MainActivity extends AppCompatActivity {
- private CheckBox checkbox;
- private EditText edittext;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- checkbox=(CheckBox)findViewById(R.id.checkbox);
- edittext=(EditText)findViewById(R.id.input);
- edittext.setCursorVisible(false); checkbox.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener(){
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- if(isChecked){
- edittext.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
- Toast.makeText(MainActivity.this, "您点击了查看密码", Toast.LENGTH_SHORT).show();
- }else {
- edittext.setTransformationMethod(PasswordTransformationMethod.getInstance());
- }
- edittext.setSelection(edittext.getText().length());
- }
- });
- }
- }
第21行代码作用是把光标隐藏
Android明密文切换的更多相关文章
- input type=passoord 密码框的明密文(显示和隐藏) 显示
最近在写一个新的项目,从头开始写,所以就要从注册登录开始做起.以前写登录注册模块的时候,无外乎给input框一个type=”password”就可以了,近期因为要涉及到显示隐藏状态的切换. 样式代码如 ...
- android 实现点击edittext的“小眼睛”切换明密文
android 实现点击edittext的“小眼睛”切换明密文 版权声明:本文为博主原创文章,未经博主允许不得转载. 很多时候,我们为了用户的隐私安全,需要在密码输入的时候,显示密文.为了更 ...
- Android横竖屏切换及其对应布局加载问题
第一,横竖屏切换连带横竖屏布局问题: 如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局. 可以通过以下两种方法来切换布局: 1)在res目录下建立layout-land ...
- Android横竖屏切换小结
Android横竖屏切换小结 (老样子,图片啥的详细文档,可以下载后观看 http://files.cnblogs.com/franksunny/635350788930000000.pdf) And ...
- 【转】Android横竖屏切换问题
Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 ...
- Android横竖屏切换及其相应布局载入问题
第一.横竖屏切换连带载入多屏布局问题: 假设要让软件在横竖屏之间切换.因为横竖屏的高宽会发生转换,有可能会要求不同的布局. 能够通过下面两种方法来切换布局: 1)在res文件夹下建立layout-la ...
- Android Activity的切换动画
Android的Activity切换有两种方法, 第一种是用代码方式实现: Activity A跳转到Activity B,要在startActivity(intent)后面加上overridePen ...
- Android横竖屏切换总结
Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 ...
- Android 主题动态切换框架:Prism
Prism(棱镜) 是一个全新的 Android 动态主题切换框架,虽然是头一次发布,但它所具备的基础功能已经足够强大了!本文介绍了 Prism 的各种用法,希望对你会有所帮助,你也可以对它进行扩展, ...
随机推荐
- python中sys和os的区别
<os和sys的官方解释> ➤os os: This module provides a portable way of using operating system dependent ...
- Systemverilog for design 笔记(一)
转载请标明出处 一. System Verilog 声明的位置 1. 包(packages) Verilog要求局部声明: variables, nets, tasks and f ...
- [ 剑指Offer ] Week2 学习笔记
打印从1到最大的n位数 题解:由于未知n的大小,需要考虑大数问题.在这样的情况下,逐位地将字符串转换为数字输出,不会有溢出的可能.使用全排列的方式列出所有数字,省去了需要考虑进位的可能. 初始化数组, ...
- web前端面试第一次[addEventListenr();绑定事件]
//当一个元素同时处理多个函数,这里使用按钮 //addEventListener(string类型,处理函数,boolean); <input type="button" ...
- windows系统桌面美化
系统主题:https://zhutix.com/ 壁纸:https://wallhaven.cc/
- Numpy 广播(Broadcast)
广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行. 如果两个数组 a 和 b 形状相同,即满足a.shape == b ...
- 十八 Spring的JDBC模板:引入外部属性文件
配置外部属性文件 配置文件里引入属性文件,两种方式 第一种: 第二种: 引入属性文件的值: 测试: <?xml version="1.0" encoding="UT ...
- 伪类:after,:before的用法
:after和:before是css3中的伪类元素.用法是像元素的前或者后插入元素.以after为例: li:after{ content: ''; color: #ff0000; } 意思是向li元 ...
- java学习-初级入门-面向对象⑥-类与对象-静态static
这次我们来学习静态(static) 知识点 1.静态方法只能调用静态变量 2.静态变量属于整个Class,会随着发生变化. 案例:定义一个自动增长的学生类. 题目要求: 定义一个学生类,除了姓名.性别 ...
- n/20 文本框动态监听输入长度