Android中EditText显示明文与密码的两种方式

news/2024/7/10 3:14:53

 

效果图如下所述:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="liu.basedemo.MainActivity">
    <EditText
        android:id="@+id/etUsername"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:hint="请输入用户名"
        android:textColor="#000000"
        android:textColorHint="#55000000"
        android:textSize="20sp"/>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical">

        <EditText
            android:id="@+id/etPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:hint="请输入密码"
            android:inputType="textPassword"
            android:textColor="#000000"
            android:textColorHint="#55000000"
            android:textSize="20sp"/>
        <CheckBox
            android:checked="false"
            android:id="@+id/cbDisplayPassword"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:button="@drawable/selector_password"/>
    </RelativeLayout>
</LinearLayout>

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

EditText显示明文与密码的两种方式如下所述:

// 第一种方式
private void initListener() {
    mCbDisplayPassword.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            Log.d(TAG, "onCheckedChanged: "+isChecked);
            if(isChecked){
                //选择状态 显示明文--设置为可见的密码
                mEtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
            } else {
                //默认状态显示密码--设置文本 要一起写才能起作用 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD
                mEtPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
            }
        }
    });
}


// 第二种方式
private void initListener() {
    mCbDisplayPassword.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            Log.d(TAG, "onCheckedChanged: "+isChecked);

            if(isChecked) {
                //选择状态 显示明文--设置为可见的密码
                //mEtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
                /**
                * 第二种
                */
                mEtPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
            } else {
                //默认状态显示密码--设置文本 要一起写才能起作用 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD
                //mEtPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                /**
                * 第二种
                */
                mEtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
            }
        }
    });
}

 


http://www.niftyadmin.cn/n/4611442.html

相关文章

context must be a dict rather解决

原来的代码 def depart_edit(request, nid):# 修改部门# 根据获取到的nid查询数据库row models.Department.objects.filter(idnid).first()# 转发数据row到depart_edit.htmlreturn render(request, depart_edit.html, row)最终发现问题render()第三个参数应该是对象形式 def…

OS层面删除数据文件后的恢复方式(LINUX):

此次删除数据文件后&#xff0c;请不要重启数据库或者关闭数据库&#xff0c;可直接在线恢复。测试方式&#xff1a;先从数据库中查看数据库数据文件的文件号及路径&#xff1a; SQL> select FILE# ,name from v$datafile;FILE# NAME ---------- -----------------------…

pyside2____1.安装和案列

安装 pip install pyside2 -i https://pypi.douban.com/simple/ 代码main.py from PySide2.QtWidgets import QApplication, QMainWindow, QPlainTextEdit, QPushButtonapp QApplication() # 总程序 window QMainWindow() # 主窗口对象 window.resize(500, 400) window.m…

Could not autowire.No beans of ‘userMapper‘ type found.

这里并没有错误&#xff0c;但是IDEA报红 package com.example.demo.mapper;import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.t…

腾讯iphone面试题(转)

1Objective&#xff0d;C内部的实现2CALayer和View的关系3 http协议&#xff0c;tcp/ip4 UITableView的那些元素是可以自定义的&#xff1f;5 c语言的&#xff0c;定义变量&#xff0c;比如int&#xff0c;在什么情况下&#xff0c;其最大值是不同的6 比较32位平台和64位平台不…

spring boot jwt完整过程

首先源码https://gitee.com/mobile191llx/spring-boot-jwt.git 接着项目目录结构 项目开始 1.新建项目名称为demo、选择maven什么都不要勾选 2.依赖pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache…

PGA结构

当客户端向服务器发送连接请求&#xff0c;服务器监听到客户端的请求&#xff0c;在专用服务器模式下&#xff0c;会在服务器端衍生一个server process来代理客户的请求&#xff0c;server process进而向实例发起连接&#xff0c;创建会话&#xff0c;而PGA就为server process所…

【干货】大数据在工业4.0演进中的价值

演讲实录&#xff1a; 今天非常高兴跟大家来分享工业4.0研究院对工业大数据的认识。具体来讲&#xff0c;我们将讨论工业4.0演进过程中&#xff0c;大数据将呈现什么价值&#xff0c;我们将从商业模式的设计来认识工业大数据的潜力。 在正式开始前&#xff0c;我先解释一下工业…