EditText缺少光标

时间:2012-09-11 09:40:49

标签: android cursor android-edittext

我通过setInputType(InputType.TYPE_NORMAL)EditText视图禁用了软键盘。正如我所料,键盘被禁用。视图上的光标也随之消失。

我想知道在键盘被禁用时是否有办法让光标返回?

提前致谢。

3 个答案:

答案 0 :(得分:2)

这是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开始)。

因此,一种可能的方法是使用反射来测试此方法(或者仅测试API的级别> = 11),并在设备上可用时调用该方法。要做到这一点,你必须编译到API> = 11(Eclipse中的项目/属性/ Android /项目构建目标 - 可能只是最新的API才能最好)并且必须将清单文件中的targetSdkVersion设置为at至少11(同样,匹配您编译的API可能是最好的)。

有关选择性使用某些应用程序声称支持的API级别(但不是全部)可用功能的详细信息,请参阅此答案:

Difference between "Build Target SDK" in Eclipse and android:targetSdkVersion in AndroidManifest.xml?

我还没有尝试过这种方法,但最终还是打算这样做。在此期间,如果有其他人尝试,请在下方添加评论,指出这是否是一个好的解决方法。

答案 1 :(得分:0)

setCursorVisible(true) this can show the cursor!

android:cursorVisible="false"

答案 2 :(得分:0)

我遇到了同样的问题所以我在清单文件中添加了以下内容并解决了问题。 在您的活动中添加windowSoftInputMode:

<input type="hidden" name="email" value="<?php echo $_GET['email'];?>">
<input type="hidden" name="password" value="<?php echo $_GET['password'];?>">