前言:

在我们的登录界面经常会遇到查看自己输入密码是否正确,就会用到明密文切换

正文:

我们先写出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行代码作用是把光标隐藏

最新文章

  1. Javascript中数组方法和方法的扩展
  2. C语言实现简单php自定义扩展
  3. windows安装python
  4. web开发(二十一)之自定义拦截器的使用
  5. Centos下samba共享打印机
  6. 设置session失效的几种方法
  7. ajax的参数
  8. [转]SQLBulkCopy使用
  9. NeHe OpenGL教程 第十九课:粒子系统
  10. Linux内核完全注释之编程语言和环境(二)
  11. C# 判断两张图片是否一致的快速方法
  12. SQLhepler用法
  13. nginx+gunicorn
  14. code style
  15. 201671010133 2016-2017-2 《java程序设计》 初学java!
  16. 2017ecjtu-summer training #3 POJ3264
  17. Synchronized的那些事
  18. UIPullRefreshFlash模块demo示例
  19. Django知识总结(一)
  20. Web API 处理机制剖析 --- 拨开迷雾看本质

热门文章

  1. 建设基于TensorFlow的深度学习环境
  2. 如何启动mac版docker自带的k8s
  3. Eclipse java SE版本解决无法新建web项目问题
  4. 134、Java中的构造方法和构造块
  5. java打包成可执行的jar或者exe的详细步骤
  6. Law of large numbers and Central limit theorem
  7. JAVA 数据库操作工具类----sqllite
  8. div 浮动
  9. 条款01:视C++为一个语言联邦
  10. css 文本溢出省略号