您的位置:首页 > 移动开发 > Android开发

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,点击后但是不显示输入法,所以没法修改想要的值





 

【折腾过程】

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

去试试,给我此处的
RelativeLayout
加上:

?
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获得焦点后,就自动显示出输入法,可以输入内容了。而且光标也能显示出来了(之前连光标也没有的)

如图:





 

【总结】

对于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点击获得焦点后无法显示输入法键盘
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐