做登录或转账系统的人会碰到需要输入密码的情况,而且可能会要求有时明文显示,有时密文显示。如何通过代码来控制呢?

下面的xml定义了一个输入框EditText,默认是系统键盘:

android:id="@+id/inputview"

style="@style/Style_Input"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:maxLength="16"

android:padding="10dp"

android:singleLine="true"

android:textCursorDrawable="@null"

android:visibility="visible" >

通过下面的代码改变输入类型:

@SuppressLint("InlinedApi")

public void setValueType(ValueType valueType) {

this.valueType = valueType;

switch(valueType) {

case EEditPwdNum:

if (showPwd) {

// 显示密码

inputView.setInputType(InputType.TYPE_CLASS_NUMBER);

inputView.setTransformationMethod(android.text.method.HideReturnsTransformationMethod.getInstance()); //数字

} else {

// 隐藏密码 3.0版才开始支持

if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {

inputView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); //字符

} else {

inputView.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);

//setTransformationMethod 则可以支持将输入的字符转换,包括清除换行符、转换为掩码

inputView.setTransformationMethod(android.text.method.PasswordTransformationMethod.getInstance());

}

}

break;

case EEditPwdTxt:

if (showPwd) {

// 显示密码

inputView.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); //字符

} else {

// 隐藏密码

inputView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); //字符

}

break;

case EText:

default:

break;

}

}

这里需要注意的是,数字密码到android3.0(android.os.Build.VERSION_CODES.HONEYCOMB)才获得支持,对于3.0以下的版本,通过代码改变的话,还是需要用字符密码。

对于数字密码还有一种方法是设置为字符密码,但是对键盘显示进行过滤,只显示数字。如:

String digits = "0123456789";

DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(digits);

inputview.setKeyListener(digitsKeyListener);

还可以通过代码对EditText做更多的控制。

android动态显示键盘,动态修改EditText输入键盘并隐藏或显示密码相关推荐

  1. Android 软键盘功能键(EditText)

    夜深了.废话不多说了,项目需要改变Android软键盘右角下的功能键! 好了!先看图?还是代码?.... 还是先代码.然后效果图! 代码: public class MainActivity exte ...

  2. Android 10.0动态修改系统属性设备型号(Build.MODEL)

    定制化开发中设备型号(ro.product.model)的修改,可以在\build\tools\buildinfo.sh中修改,不过这种方式只能写死了, 所以需要根据不同情况动态修改设备型号 就得修改 ...

  3. android inputmethodmanager 不自动弹出,Android中软键盘InputMethodManager的弹出和隐藏,以及显示和隐藏的监听...

    1.首先设置软键盘的弹出模式,设置在初始化View的前面 @Override protected void onCreate(Bundle savedInstanceState) { this.req ...

  4. Android 4.4 如何修改WiFi热点的默认SSID和密码

    需求:需要修改WiFi热点的默认SSID和密码 代码路径: frameworks/base/wifi/java/android/net/wifi/WifiApConfigStore.java 在Wif ...

  5. Android 7.0 SystemUI 状态/导航栏的隐藏与显示

    平台 Android 7.1 + RK3288 概述 从Android 4.4开始支持沉浸式全屏体验,在沉浸式全屏模式下,状态栏. 虚拟按键动态隐藏,应用可以使用完整的屏幕空间,按照 Google 的 ...

  6. Android 编译期间 动态修改AndroidMainFest文件

    背景: 有时间有些需求,需要我们动态的修改AndroidMainFest文件,比如我想把应用所有的横屏改成竖屏.如果用手动替换搜索也可以,但是就会有一个问题就是,和其他分支合并的时候,容易产生冲突. ...

  7. android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...

    最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色 ...

  8. Android 开发中动态修改StatusBar 的字体颜色(仅可以黑白)

    在开发中,产品要实现一个点击搜索,然后改变statusbar的字体颜色,百度了一通,发现,有一个比较好的blog 可以实现该效果 ,正好可以实现该效果,不论如何先上效果图: 将工具类代码贴上来 这个方 ...

  9. java相对应的键盘输入_Java 实现输入键盘上任意键显示出相对应的ASCII

    //主程序类 public class KeyPress extends JFrame { public static void main(String[] args) { KeyFrame fram ...

最新文章

  1. python判断能否形成等差数列
  2. 指向字符串的指针为何不能用来修改此字符串
  3. arcgis 出图背景_ArcGIS中导出数据时老显示导出失败,显示“保存对象时出错”什么原因?...
  4. Linux公社资料库地址
  5. STM32开发 -- 打开网址测试脚本编写
  6. QML for Android通过ScreenRecorder录制屏幕并保存为本地视频
  7. ECharts 实现人民的名义关系图谱 代码开源
  8. python中的sort,sorted
  9. 使用com.alibaba.fastjson.JSONObject构造简单的JSON数据
  10. android开发之调皮的权限
  11. linux如何设置服务器上的系统时间
  12. JS实现轮播图(一看就懂逻辑清晰)
  13. 基于matlab的黑体辐射特性分析,MATLAB 黑体辐射规律的研究
  14. Excel如何制作二级下拉菜单
  15. MaxCompute创建TableStore外表
  16. 安全漏洞防御(8) DDOS 攻击的防范教程
  17. 计算机的诞生以及四个发展阶段,计算机发展历史的四个阶段.docx
  18. django实现qq一键登录(qq互联)
  19. ChromeFK插件推荐系列二十三:在线文字转语音/语音朗读插件推荐
  20. 点云3d检测SA-SSD

热门文章

  1. express-winston 库的学习笔记
  2. SAP Commerce Cloud Spartacus UI 的购物车 Cart 功能
  3. SAP 几款容易令初学者混淆的 HANA 解决方案
  4. JavaScript 引擎和 Just-in-Time 编译概念,Hot Function 的简单介绍
  5. 从一个实际的例子出发,谈谈SAP Commerce Cloud电商云的UI自定义开发
  6. Angular路由里的canActivate用法
  7. Angular单元测试的一个错误消息
  8. SAP Commerce(原Hybris)的订单处理框架和SAP CRM One Order框架
  9. abap git - commnication failure错误消息的分析和定位
  10. Twice enter press click will trigger backend roundtrip