我使用自己的键盘制作应用程序,我想完全禁用Android默认的virtaul键盘。
我试过这个:
myEditText.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(keresetEditText.getWindowToken(), 0);
}
});
它工作得非常好,但是我意外地发现了一个错误,真的让我陷入了困境:
当我在EditText上滑下手指时,软键盘就出现了! 所以结论是:onClickListener在我滑动时没有运行,而不是点击。
我试过onTouchListener,但它没有用! 任何提示我怎么能完全禁用虚拟键盘?我不需要在整个应用程序中使用它。
其他事情: 我可以向stackoverflow提出另一个问题,但我认为这是合乎逻辑的: 当我单击EditText的光标时,我可以在EditText中的文本中移动它,但我不希望它像这样启用。我可以禁用游标MOVEability ???所以我需要闪烁的光标,但只是处于停留位置。
答案 0 :(得分:5)
以下是一些适合您的解决方案:
如果您永远不需要软键盘显示该活动,您可以在清单中设置android:windowSoftInputMode="stateAlwaysHidden"
属性
禁用编辑文字。您将没有闪烁的光标(或任何光标),但是使用禁用的编辑文本打开软键盘是不可能的,同时仍然可以在代码中设置您自己的文本
只需使用TextView,同时设置为背景android.R.drawable.edit_text。它看起来像一个EditText,虽然只是一个只读的TextView,仍然允许你从代码中设置任何值。同样,你仍然没有闪烁的光标
将EditText的可聚焦和可点击属性设置为false。编辑文本永远不会获得焦点,因此永远不会导致软键盘显示
(这是一个黑客攻击)在edittext上放置一个不可见的按钮,因此实际上可以通过什么也不做的按钮拦截edittext上的点击。编辑文本仍然可以使用轨迹球或方向键进行聚焦,并且您仍然没有闪烁的光标