我通过 EditText
View 的 setInputType(InputType.TYPE_NORMAL)
禁用了软键盘。正如我所料,键盘被禁用。 View 上的光标也会随之消失。
我想知道是否有办法在键盘禁用时让光标返回?
提前致谢。
最佳答案
这是 Android 报告的问题:
http://code.google.com/p/android/issues/detail?id=27609
我自己在禁用软键盘以允许使用外部键盘时经历过这种情况。在这种情况下,我无法恢复光标,即使使用 setCursorVisible(true) (如当前问题的另一个答案中所述)也是如此。
针对上述问题的评论中建议了一些解决方法,但它们似乎并不适用于所有情况。
我的测试显示,在我的 Nexus One 手机上的 Android 2.3.3 中(当使用禁用软输入的蓝牙键盘时)不会出现该问题,并且在相同情况下,在我的 Nexus 7 平板电脑上的 Android 4.3 中确实会出现该问题。这与上面链接的问题的评论一致,表明 Android 4.0 及更高版本遇到了该问题。
该问题的一位评论者报告说,调用 setTextIsSelectable() 可以解决该问题,并且此方法的 Javadoc 显示它在 API 级别 11 及更高版本中可用。这意味着它应该在所有出现问题的设备上可用(因为 4.0 从 API 15 开始)。
因此,一种可能的方法是使用反射来测试此方法(或仅测试级别 >= 11 的 API),并调用该方法(如果该方法在设备上可用)。为此,您必须编译为 API >= 11(Eclipse 中的 Project/Properties/Android/Project Build Target - 可能最新的 API 效果最好),并且必须将 list 文件中的 targetSdkVersion 设置为至少11(同样,匹配您编译的 API 可能是最好的)。
有关选择性使用应用程序声明支持的某些(但不是全部)API 级别上可用的功能的更多信息,请参阅此答案:
我还没有尝试过这种方法,但最终打算尝试。同时,如果其他人尝试这样做,请在下面添加评论,表明这是否是一个好的解决方法。
关于android - EditText 缺少光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12366867/