android系统中,点击EditText时,隐藏系统软键盘,显示光标
来源:互联网 发布:数据库手机号码类型 编辑:程序博客网 时间:2024/05/24 23:12
因为项目中要用自定义的随机键盘,所以必须得屏蔽系统软键盘,但是在4.0的测试系统来看,使用editText.setInputType(InputType.TYPE_NULL)方法固然能隐藏键盘,但是光标也会隐藏,所以无法使用。
3.0以下版本可以用editText.setInputType(InputType.TYPE_NULL)来实现。或者设置editText.setKeyListener(null)来实现。3.0以上版本除了调用隐藏方法setShowSoftInputOnFocus(false),由于是系统内部方法,无法直接调用所以采用反射的方式来进行调用,如下
在项目中(当前项目使用的是android4.0):
int SDK_INT = android.os.Build.VERSION.SDK_INT;if (SDK_INT <= 10) {// 点击EditText,屏蔽默认输入法editText.setInputType(InputType.TYPE_NULL); // editText是声明的输入文本框。} else {// 点击EditText,隐藏系统输入法getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);try {Class<EditText> cls = EditText.class;Method method = cls.getMethod("setShowSoftInputOnFocus",boolean.class);// 4.0的是setShowSoftInputOnFocus,4.2的是setSoftInputShownOnFocusmethod.setAccessible(false);method.invoke(editText, false); // editText是声明的输入文本框。} catch (NoSuchMethodException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}}
注:
上面反射的方法是从TextView的源码中找到的。因为EditText是继承TextView,看网上据说有的sdk里面是"setSoftInputShownOnFocus",反正具体是跟自己的sdk相对应就可以了。4.0系统对应设置的是setShowSoftInputOnFocus,4.2系统对应设置的是setSoftInputShownOnFocus,这两个版本的都测试过了,是正确可用的。
参考:
Android自定义软键盘的实现
android自定义软键盘
Android.edittext点击时,隐藏系统弹出的键盘,显示出光标
http://blog.163.com/zhaoliping0736@126/blog/static/5550761120149684736794/
0 0
- android系统中,点击EditText时,隐藏系统软键盘,显示光标
- android系统中,点击EditText时,隐藏系统软键盘,显示光标
- Android.EditText点击时,隐藏系统弹出的键盘,显示出光标
- Android.EditText点击时,隐藏系统弹出的键盘,显示出光标
- Android自定义软键盘输入法,隐藏系统输入法显示光标的实现
- android EditText 隐藏系统键盘 保留光标
- android EditText 隐藏软键盘(输入法不显示),并且显示光标
- Android edittext使用自定义键盘时禁用系统软键盘但却不禁用光标
- 处理Android中EditText软键盘显示与隐藏
- 1EditText初始不弹出软键盘,只有光标显示,点击再弹出;2android:imeOptions
- Android EditText设置默认不弹出软键盘,点击EditText外部隐藏软键盘,EditText获取焦点时隐藏hint
- Android Edittext 显示隐藏软键盘
- Android EditText设置InputType属性时,隐藏系统软键盘失败
- Android Edittext软键盘光标
- EditText点击不弹出系统键盘,显示光标
- EditText光标控制和软键盘隐藏
- EditText 显示隐藏软键盘
- Android EditText 使用自定义键盘,隐藏系统键盘,保留光标
- iOS_XCode6.2插件失效解决方法
- 20150319
- Objective-C总Runtime的那点事儿(一)消息机制
- 北京联通兆维数据中心
- C++中const关键字的用法
- android系统中,点击EditText时,隐藏系统软键盘,显示光标
- CSDN博客神器--MarkDown
- 浅谈接口和抽象类的区别
- 如何进行软件需求分析
- 线程和进程的区别
- ZMQ guider
- 模仿新浪微博@某人/#话题的效果
- EHCache使用
- C#读取Excel多个sheet