Android中EditText点击获得焦点后无法显示输入法键盘
2017-10-20 15:24
639 查看
转载出自:https://www.crifan.com/android_edittext__got_focus_but_not_show_keyboard_inputmethod/
马克
【背景】
android中EditText的Enable已经设置为True了,表示可以被编辑,
但是点击输入框,获得焦点后,无法显示输入法,导致无法输入内容。
比如:
Descriptor的值是EditText
之前已经设置为可编辑了:
?
当前值是DESCRIPT,点击后但是不显示输入法,所以没法修改想要的值
![](https://www.crifan.com/files/pic/uploads/2014/04/descript-edittext-clicked-but-not-show-keyboard_thumb.png)
【折腾过程】
1.搜:
android edittext cannot input
找了些:
cannot input text into EditText widgets inside ListView – Google Groups
但是都没用
2.注意到,之前加了listener:
?
现在试试,去掉Listener:
?
看看效果:结果还是不行,点击到可以编辑的EditText中后,还是不能显示出输入法。
3.再去搜:
android edittext not show keyboard
有空再去试试:
android – Custom EditText is not showing keyboard on focus – Stack Overflow
的:
?
4.另外参考:
java – Programatically Hide/Show Android Soft Keyboard – Stack Overflow
去试试,给我此处的
?
PS:忘了说了,之前是可以正常显示出输入法的。。。不知道为何现在不能显示,也搞不清有哪些改动可能导致此问题的。
结果还是不行。
5.突然想到,难道是当前正在测试的三星的PAD(GT-P5210)有问题?所以去重启PAD试试,结果问题依旧。
6.去掉上面的
android:focusableInTouchMode
试试,结果问题依旧。
7.现在把之前的RelativeLayout中所有的EditText的Enable都改为True看看效果。
记得发现诡异的问题:
在有多个的EditText的情况下,前面几个的InputType都是
TYPE_TEXT_VARIATION_NORMAL
然后切换到
TYPE_CLASS_NUMBER
结果输入法就显示出来了,此时只允许输入数字
然后再切换到别的
TYPE_TEXT_VARIATION_NORMAL
的,输入法就可以正常出现,且允许输入各种字符了。
即:
第一次,焦点点击到String部分的EditText,结果都不能出现输入法
只有先去点击别的Number的,再切换回String的,输入法才正常,才可以输入。。。
所以再去把:
?
换为别的值,但是想要在换之前,再去确认各种可能的类型。
然后搜:
android TYPE_TEXT_VARIATION_NORMAL not show
参考:
android – Show the password with EditText – Stack Overflow
果然和我想的一样,感觉应该用bit or的:
?
看看效果,结果真的就可以了:
当EditText获得焦点后,就自动显示出输入法,可以输入内容了。而且光标也能显示出来了(之前连光标也没有的)
如图:
![](https://www.crifan.com/files/pic/uploads/2014/04/edittext-can-show-cursor-and-keyboard-inputmethod-when-clicked_thumb.png)
【总结】
对于EditText的话,其InputType属性
如果设置为
?
(对应的xml定义中是)
则会导致
可以点击对应的EditText,获得焦点
但是无法显示输入法,无法显示光标
改为:
?
就可以:
在获得焦点后,显示对应的输入法和光标了。
【引申】
1.参考了官网的解释:
InputType | Android Developers
“
A time field:
inputType = TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_TIME
”
再去把之前错写为:
?
改为:
?
2.又从:
Android programmatically disable autocomplete/autosuggest
for EditText in emulator – Stack Overflow
的
textVisiblePassword
找到:
TextView | Android Developers
可知:
前面所说的
?
对应的xml中的定义:
EditText中的属性
?
而其他不同类型,可以查看官网即可得到:
TextView | Android Developers
【后记】
关于EditText的InputType的更详细的解释,可参考后来的总结:
【整理】Android中EditText(或TextView)中的InputType类型含义与如何定义
转载请注明:在路上 » 【已解决】Android中EditText点击获得焦点后无法显示输入法键盘
马克
【背景】
android中EditText的Enable已经设置为True了,表示可以被编辑,
但是点击输入框,获得焦点后,无法显示输入法,导致无法输入内容。
比如:
Descriptor的值是EditText
之前已经设置为可编辑了:
?
![](https://www.crifan.com/files/pic/uploads/2014/04/descript-edittext-clicked-but-not-show-keyboard_thumb.png)
【折腾过程】
1.搜:
android edittext cannot input
找了些:
cannot input text into EditText widgets inside ListView – Google Groups
但是都没用
2.注意到,之前加了listener:
?
?
3.再去搜:
android edittext not show keyboard
有空再去试试:
android – Custom EditText is not showing keyboard on focus – Stack Overflow
的:
?
java – Programatically Hide/Show Android Soft Keyboard – Stack Overflow
去试试,给我此处的
RelativeLayout加上:
?
结果还是不行。
5.突然想到,难道是当前正在测试的三星的PAD(GT-P5210)有问题?所以去重启PAD试试,结果问题依旧。
6.去掉上面的
android:focusableInTouchMode
试试,结果问题依旧。
7.现在把之前的RelativeLayout中所有的EditText的Enable都改为True看看效果。
记得发现诡异的问题:
在有多个的EditText的情况下,前面几个的InputType都是
TYPE_TEXT_VARIATION_NORMAL
然后切换到
TYPE_CLASS_NUMBER
结果输入法就显示出来了,此时只允许输入数字
然后再切换到别的
TYPE_TEXT_VARIATION_NORMAL
的,输入法就可以正常出现,且允许输入各种字符了。
即:
第一次,焦点点击到String部分的EditText,结果都不能出现输入法
只有先去点击别的Number的,再切换回String的,输入法才正常,才可以输入。。。
所以再去把:
?
然后搜:
android TYPE_TEXT_VARIATION_NORMAL not show
参考:
android – Show the password with EditText – Stack Overflow
果然和我想的一样,感觉应该用bit or的:
?
当EditText获得焦点后,就自动显示出输入法,可以输入内容了。而且光标也能显示出来了(之前连光标也没有的)
如图:
![](https://www.crifan.com/files/pic/uploads/2014/04/edittext-can-show-cursor-and-keyboard-inputmethod-when-clicked_thumb.png)
【总结】
对于EditText的话,其InputType属性
如果设置为
?
则会导致
可以点击对应的EditText,获得焦点
但是无法显示输入法,无法显示光标
改为:
?
在获得焦点后,显示对应的输入法和光标了。
【引申】
1.参考了官网的解释:
InputType | Android Developers
“
A time field:
inputType = TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_TIME
”
再去把之前错写为:
?
?
Android programmatically disable autocomplete/autosuggest
for EditText in emulator – Stack Overflow
的
textVisiblePassword
找到:
TextView | Android Developers
可知:
前面所说的
?
EditText中的属性
?
TextView | Android Developers
【后记】
关于EditText的InputType的更详细的解释,可参考后来的总结:
【整理】Android中EditText(或TextView)中的InputType类型含义与如何定义
转载请注明:在路上 » 【已解决】Android中EditText点击获得焦点后无法显示输入法键盘
相关文章推荐
- Android中EditText点击获得焦点后无法显示输入法键盘
- 解决Android EditText获得焦点之后无法弹出软键盘输入法
- Android 自定义EditText 实现获得焦点并且有内容显示右侧图片并点击清空内容
- Android Edittext获取焦点后,弹出的软键盘显示搜索、发送、完成等功能
- android EditText 默认情况下不获取焦点(不弹出输入法)+点击EditText时,不弹出键
- listview的edittext如何获得焦点,android 软键盘的显示与隐藏
- Android:实现EditText在获得焦点后消去hint,失去焦点后再显示原来的hint
- Android 点击EditText在键盘上显示下一步
- Android.EditText点击时,隐藏系统弹出的键盘,显示出光标
- android中自定义dialog中有editText,无法显示输入法对话框的解决办法
- android中edittext插入QQ表情后,无法使用输入法键盘的退格键(删除键)删除表情的解决方法
- android--EditTextView 点击后无法弹出输入法
- android强制隐藏键盘(当edittext获得焦点时不弹出键盘)
- Android.edittext点击时,隐藏系统弹出的键盘,显示出光标
- Android.EditText点击时,隐藏系统弹出的键盘,显示出光标
- android对话框的EditText点击后不显示输入法的问题
- Android EditText 获得焦点不显示光标
- Android:当焦点在EditText上时自动显示软件键盘
- Android 重写EditText,失去焦点超出控件宽度部分三个点表示,获得焦点显示原来内容
- EditText无法输入内容,无法获得焦点,无法自动弹出键盘