Android小技巧 自动关闭输入法软键盘
一、简介
作用:获取编辑框的最大长度,当输入后文本长度等于最大长度则关闭软键盘。
使用场景:手机号,固定位数的密码,验证码
二、代码部分
工具类 ViewUtil.java
public class ViewUtil {// 获取编辑框的最大长度,通过反射机制调用隐藏方法public static int getMaxLength(EditText et) {int length = 0;try {InputFilter[] inputFilters = et.getFilters();for (InputFilter filter : inputFilters) {Class<?> c = filter.getClass();if (c.getName().equals("android.text.InputFilter$LengthFilter")) {Field[] f = c.getDeclaredFields();for (Field field : f) {if (field.getName().equals("mMax")) {field.setAccessible(true);length = (Integer) field.get(filter);}}}}} catch (Exception e) {e.printStackTrace();}return length;}public static void hideAllInputMethod(Activity act) {// 从系统服务中获取输入法管理器InputMethodManager imm = (InputMethodManager) act.getSystemService(Context.INPUT_METHOD_SERVICE);if (imm.isActive()) { // 软键盘如果已经打开则关闭之imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);}}public static void hideOneInputMethod(Activity act, View v) {// 从系统服务中获取输入法管理器InputMethodManager imm = (InputMethodManager) act.getSystemService(Context.INPUT_METHOD_SERVICE);// 关闭屏幕上的输入法软键盘imm.hideSoftInputFromWindow(v.getWindowToken(), 0);}}
监听器实例:
// 文本变化监听器private class HideTextWatcher implements TextWatcher {private EditText mView;private int mMaxLength;private CharSequence mStr;HideTextWatcher(EditText v) {super();mView = v;mMaxLength = ViewUtil.getMaxLength(v);}//输入文本前触发@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) { }// 输入文本时触发@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {mStr = s;}// 文本变化后触发@Overridepublic void afterTextChanged(Editable s) {if (mStr == null || mStr.length() == 0)return;// 手机号码输入达到11位,或者密码/验证码输入达到6位,都关闭输入法软键盘if ((mStr.length() == 11 && mMaxLength == 11) || (mStr.length() == 6 && mMaxLength == 6)){ViewUtil.hideOneInputMethod(MainActivity.this, mView);}}}
三、运行展示
Android小技巧 自动关闭输入法软键盘相关推荐
- android 输入法 确定按钮,Android项目:输入法软键盘显示/隐藏的监听和控制,InputMethodManager用法研究...
在项目开发中,用到编辑框的地方经常涉及到要监听或者控制软键盘的显示/隐藏状态.本以为这是很容易解决的一个小问题,没想到当初碰到这个问题才明白还得花点小心思才能整好.现将针对软键盘的显示/隐藏状态的监听 ...
- Android点击空白区域,隐藏输入法软键盘
很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏.为了更好的体验,我们可以实现当用户使用完毕软键盘时.点击空白区域即可实现隐藏 ...
- Java调用虚拟键盘输入法_Android 点击屏幕空白处收起输入法软键盘(手动打开)...
很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏.为了更好的体验,我们可以实现当用户使用完毕软键盘时.点击屏幕空白区域即可实现 ...
- android 页面默认不弹软键盘_Android 软键盘的全面解析,让你不再怕控件被遮盖!...
作者 | Vander丶 编辑 | 苏宓 微信公众号 | mobilehub 背景 Android软键盘这块从我入职到现在,是一个一直纠缠我的问题. 从布局挤压,到EditText显示不全,在到弹出时 ...
- 安卓输入法弹出后css横屏,mui开发安卓端,输入法软键盘导致css横屏样式判断触发...
mui开发安卓端,输入法软键盘导致css横屏样式判断触发 mui开发安卓端,输入法软键盘导致css横屏样式判断触发 css 横屏媒体查询 @media screen and (orientation: ...
- android 软键盘遮挡登陆按钮的问题,Android优雅的方式解决软键盘遮挡按钮问题
前言 比如在进行登录的操作中,用户输入完密码之后,肯定是想直接点击登录按钮的.返回键隐藏软键盘这样的体验肯定很糟糕,程序员,遇到问题解决问题. 实现1 xml android:id="@+i ...
- android开发隐藏软键盘,Android开发之完全隐藏软键盘的方法
隐藏软键盘一直是我头痛的事情,没有找到一种真正能隐藏的方法.点击EditText的时候总是弹出软键盘.-----杯具 杯具(一): InputMethodManager im =(InputMetho ...
- android 软键盘工具类,Android开发之弹出软键盘工具类简单示例
本文实例讲述了Android开发之弹出软键盘工具类.分享给大家供大家参考,具体如下: package com.maobang.imsdk.util; import android.content.Co ...
- 弹出输入法软键盘,编辑框悬浮,及覆盖遮挡问题的解决
2015年10月29日 谷歌果然好,一搜就找到清晰答案 软键盘遮挡的四种解决方法 首先效果一:adjustPan 效果二:adjustResize, 实现方法:该activity使用相对布局,自定义一 ...
最新文章
- graphpad做折线图后怎么保存_农村的干豆角怎么做的?农村妹子教你两个窍门,保存2年都不会坏...
- java017.Set集合
- 如何在包下创建子包?
- 计算机网络 实验教案,《计算机网络》实验教案.pdf
- python傅里叶函数图像_python实现傅里叶级数展开的实现
- C#LeetCode刷题-深度优先搜索
- Android学习笔记:利用httpclient和AsyncTask 发起网络http post操作
- 分布式数据库中间件的实现原理介绍一:分库分表【转】
- 睡觉觉睡觉睡觉计算机手机,睡够8小时才算好?科学告诉你,该睡多久!
- Atitti 编程语言高级 api 与高级知识 堆栈api 异常api Meta anno注解元数据api Ref 反射api Database meta api 字节码库如果你正在编写一个框架或者
- python平稳性检验程序_用Python检验时间序列的平稳性
- MySQL分页查询的5种方法
- 01- SA8155P QNX LA/LV 启动(01) - startup
- QPushButton QTableWidget QComBox属性设置
- java sql语句之插入语句的拼接规则
- Java中的逻辑运算符/移位运算符简单总结
- Powershell 过火绒免杀上线
- 18.链表插入——尾插法
- 终端设备的物联网控制方案
- H5画布绘制透明圆环