在我的应用我禁用键盘(我现在用我的自定义键盘),使用此代码:
editText.setInputType(InputType.TYPE_NULL);
现在,我的问题是,文本光标不会在编辑文本再出现。 我该怎么办? 任何建议将是非常赞赏。
在我的应用我禁用键盘(我现在用我的自定义键盘),使用此代码:
editText.setInputType(InputType.TYPE_NULL);
现在,我的问题是,文本光标不会在编辑文本再出现。 我该怎么办? 任何建议将是非常赞赏。
有一个在bug跟踪系统打开的问题在bug跟踪系统开通问题这一点。 一位用户的建议对这些“最”设备工作的方法。
简单地说,所有你需要做的就是调用:
editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
为您的EditText视图(后你叫editText.setInputType(InputType.TYPE_NULL);
)。
你应该还设置:
editText.setTextIsSelectable(true);
为了使文本可以进行选择(虽然似乎并不与三星Galaxy SIII正常工作)。 此方法只能从蜂窝 (api11)开始,因此对于较旧的Android版本的开发时,记住这一点。
此外,它是说,你的EditText不应该是活动开始时接收焦点(如果它是-从另一种观点认为只是requestFocus()方法)的第一个观点。 虽然我(个人)没有经历过任何与此问题。
而不是仅仅使用自定义视图自定义键盘,为什么不实行全面的输入法? 这将解决你的光标的问题,甚至使可用您的应用程序之外键盘(如果你想)。
这个答案有几个有用的链接,如果你想这样做: 如何建立一个软键盘的Android?
我真的不认为这一点。 写一个很好的羽翼丰满的IME真的很难。 此外,用户来了,从他们的键盘期望的功能(自动校正,Swype输入,词语联想,改变语言的能力),除非你花几个月键盘本身上,你不会有。 任何应用程序,也不会允许我使用Swype输入会立即被删除(偏置注:我曾在Swype的机器人)。
但是,如果你想与OS键盘充分结合,你将不得不写InputMethodService。 然后,您的键盘是在键盘选择菜单的用户选择,并且可用于任何应用程序。 这是得到充分的操作系统集成的唯一途径,否则你将需要真正从刮擦编写自己的EditView中开始。 有乐趣的是,让一个看起来不错的说法无疑是不平凡的。
此外,设置输入型空将不会禁用大多数键盘。 它只是将它们放入哑模式并关闭之类的预测。
我尝试了以下的答案和它的工作,但要小心,1)EditText上不能集中在初始化2)当你的方向变化,而用户的重点是EDITTEXT,该股键盘弹出,这是另一种“可以解决的”问题。
这是在前面的回答中提到,但照顾,你必须确保你的EDITTEXT元素不要实例获得焦点:
https://code.google.com/p/android/issues/detail?id=27609#c7
#7 nyphb ... @ gmail.com
我终于找到一个(对我)的工作解决了这一点。
第一部分(中的onCreate):
mText.setInputType(InputType.TYPE_NULL);
if (android.os.Build.VERSION.SDK_INT >= 11 /*android.os.Build.VERSION_CODES.HONEYCOMB*/) {
// this fakes the TextView (which actually handles cursor drawing)
// into drawing the cursor even though you've disabled soft input
// with TYPE_NULL
mText.setRawInputType(InputType.TYPE_CLASS_TEXT);
}
此外,Android:textIsSelectable需要被设置为true(或设置的onCreate)和EditText上不能集中在初始化。 如果您的EditText是第一个可聚焦视图(这是在我的情况),您可以解决此通过把这个它上面:
<LinearLayout
android:layout_width="0px"
android:layout_height="0px"
android:focusable="true"
android:focusableInTouchMode="true" >
<requestFocus />
</LinearLayout>