如何停止卓软盘从以往任何时候都来了在我的整个应用程序
-
19-09-2019 - |
题
我正在开发一个应用程序上的硬件设备,有一个内置的硬件键盘那不滑出来,所以总是可见(喜欢黑莓).因此,我再也不想的软盘来显示我的整个应用程序。我知道的 另一个这样的问题 这给了以下行代码:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
但我不知道在哪里投入这个代码隐藏软键盘在所有地方,它可能会出现在我的活动。我已经试图加入的代码 Activity.onUserInteraction
无济于事。这似乎显示键盘 后 的 onUserInteraction
执行。
我也想加入下面的我 <Activity>
:
<activity
android:windowSoftInputMode="stateAlwaysHidden"
>
软盘仍然出现。
解决方案
您的应用程序不应该做任何事情。该设备的固件应该包含抑制基于硬件键盘是可见的软键盘,就像有一个硬件键盘的每个其他Android设备的配置。如果情况并非如此,聊到硬件厂商,看看他们正在解决这一计划。
其他提示
如果一个EditText具有0的的inputType,选择了的EditText当软键盘将永远不会弹出。
EditText editText = findViewById(R.id.edit_text); editText.setInputType(0);
当然,这将需要在应用程序中的所有EditTexts做,或者你总是可以继承的EditText并设定输入类型为0,在构造函数。
设置XML的inputType参数不会做,因为这对应于向setRawInputType方法,该方法不删除的KeyListener的呼叫。
我通过在我的一个位定制的EditText重写onCheckIsTextEditor方法来解决它。
@Override
public boolean onCheckIsTextEditor() {
return false;
}
你在哪里都必须编辑的文字,把这个代码..
edittext.setInputType(InputType.TYPE_NULL);
if (android.os.Build.VERSION.SDK_INT >= 11)
{
edittext.setRawInputType(InputType.TYPE_CLASS_TEXT);
edittext.setTextIsSelectable(true);
}
不隶属于 StackOverflow