巧用checkbox与edittext实现密码框

1 篇文章 0 订阅
0 篇文章 0 订阅

前言:密码框内容的隐藏和显示


想要实现的这个功能其实说难也不难,因为可以使用最土的方法对这个功能进行实现,


比如说,你可以用两张图片,一张显示,一张用来隐藏,然后给两张图片都添加一个点击事件,


对输入框的隐藏和显示进行处理也不是不行,不过的话,这样做会带来大量的代码,

也耗费了较大的时间。而用checkbox就可以快速实现这样的效果!


1.准备好布局文件


<LinearLayout
    android:id="@+id/yanzhengma"
    android:layout_marginTop="20dp"
    android:layout_below="@id/tt_llayout"
    android:layout_centerInParent="true"
    android:layout_width="300dp"
    android:layout_height="60dp"
    android:background="@drawable/load_shape"
    >
   <ImageView
       android:layout_marginLeft="10dp"
       android:layout_marginTop="10dp"
       android:layout_width="35dp"
       android:layout_height="35dp"
       android:src="@drawable/mima"
       />
   <EditText
       android:id="@+id/new_password"
       android:inputType="textPassword"
       android:padding="10dp"
       android:layout_width="200dp"
       android:layout_height="45dp"
       android:textColor="@color/colorWhite"
       android:textSize="18sp"
       android:layout_gravity="center"
       android:hint="新密码"
       android:background="@null"
       android:textColorHint="@color/colorWhite"
       />

   <CheckBox
       android:id="@+id/eyes_checkbox"
       android:layout_width="35dp"
       android:layout_height="35dp"
       android:layout_marginLeft="10dp"
       android:layout_marginTop="10dp"
       android:button="@drawable/checkbox_shape"
       />
</LinearLayout>




这里需要注意点的是:编辑框的InputType的设置和checkbox让其变为button的样式模式



2.准备两张图片放进selector里面



<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/eyes_close"  android:state_checked="false"></item>
    <item android:drawable="@drawable/eyes_open" android:state_checked="true"></item>
</selector>



这里值得注意一下的是两种状态的改变false与true需要写清楚





3.设置监听,一开始时我并没有给其设置监听事件结果就出现那种输入框只有一种状态的效果,所以这里记得需要设置监听事件





eye_checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b)
    {
        if (eye_checkbox.isChecked())
        {
            new_password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
        }
        else
        {
            new_password.setTransformationMethod(PasswordTransformationMethod.getInstance());
        }
    }
});


实现效果如下图:

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值