android动态显示键盘,动态修改EditText输入键盘并隐藏或显示密码
做登录或转账系统的人会碰到需要输入密码的情况,而且可能会要求有时明文显示,有时密文显示。如何通过代码来控制呢?
下面的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输入键盘并隐藏或显示密码相关推荐
- Android 软键盘功能键(EditText)
夜深了.废话不多说了,项目需要改变Android软键盘右角下的功能键! 好了!先看图?还是代码?.... 还是先代码.然后效果图! 代码: public class MainActivity exte ...
- Android 10.0动态修改系统属性设备型号(Build.MODEL)
定制化开发中设备型号(ro.product.model)的修改,可以在\build\tools\buildinfo.sh中修改,不过这种方式只能写死了, 所以需要根据不同情况动态修改设备型号 就得修改 ...
- android inputmethodmanager 不自动弹出,Android中软键盘InputMethodManager的弹出和隐藏,以及显示和隐藏的监听...
1.首先设置软键盘的弹出模式,设置在初始化View的前面 @Override protected void onCreate(Bundle savedInstanceState) { this.req ...
- Android 4.4 如何修改WiFi热点的默认SSID和密码
需求:需要修改WiFi热点的默认SSID和密码 代码路径: frameworks/base/wifi/java/android/net/wifi/WifiApConfigStore.java 在Wif ...
- Android 7.0 SystemUI 状态/导航栏的隐藏与显示
平台 Android 7.1 + RK3288 概述 从Android 4.4开始支持沉浸式全屏体验,在沉浸式全屏模式下,状态栏. 虚拟按键动态隐藏,应用可以使用完整的屏幕空间,按照 Google 的 ...
- Android 编译期间 动态修改AndroidMainFest文件
背景: 有时间有些需求,需要我们动态的修改AndroidMainFest文件,比如我想把应用所有的横屏改成竖屏.如果用手动替换搜索也可以,但是就会有一个问题就是,和其他分支合并的时候,容易产生冲突. ...
- android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...
最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色 ...
- Android 开发中动态修改StatusBar 的字体颜色(仅可以黑白)
在开发中,产品要实现一个点击搜索,然后改变statusbar的字体颜色,百度了一通,发现,有一个比较好的blog 可以实现该效果 ,正好可以实现该效果,不论如何先上效果图: 将工具类代码贴上来 这个方 ...
- java相对应的键盘输入_Java 实现输入键盘上任意键显示出相对应的ASCII
//主程序类 public class KeyPress extends JFrame { public static void main(String[] args) { KeyFrame fram ...
最新文章
- python判断能否形成等差数列
- 指向字符串的指针为何不能用来修改此字符串
- arcgis 出图背景_ArcGIS中导出数据时老显示导出失败,显示“保存对象时出错”什么原因?...
- Linux公社资料库地址
- STM32开发 -- 打开网址测试脚本编写
- QML for Android通过ScreenRecorder录制屏幕并保存为本地视频
- ECharts 实现人民的名义关系图谱 代码开源
- python中的sort,sorted
- 使用com.alibaba.fastjson.JSONObject构造简单的JSON数据
- android开发之调皮的权限
- linux如何设置服务器上的系统时间
- JS实现轮播图(一看就懂逻辑清晰)
- 基于matlab的黑体辐射特性分析,MATLAB 黑体辐射规律的研究
- Excel如何制作二级下拉菜单
- MaxCompute创建TableStore外表
- 安全漏洞防御(8) DDOS 攻击的防范教程
- 计算机的诞生以及四个发展阶段,计算机发展历史的四个阶段.docx
- django实现qq一键登录(qq互联)
- ChromeFK插件推荐系列二十三:在线文字转语音/语音朗读插件推荐
- 点云3d检测SA-SSD
热门文章
- express-winston 库的学习笔记
- SAP Commerce Cloud Spartacus UI 的购物车 Cart 功能
- SAP 几款容易令初学者混淆的 HANA 解决方案
- JavaScript 引擎和 Just-in-Time 编译概念,Hot Function 的简单介绍
- 从一个实际的例子出发,谈谈SAP Commerce Cloud电商云的UI自定义开发
- Angular路由里的canActivate用法
- Angular单元测试的一个错误消息
- SAP Commerce(原Hybris)的订单处理框架和SAP CRM One Order框架
- abap git - commnication failure错误消息的分析和定位
- Twice enter press click will trigger backend roundtrip