停止方法のandroidソフトウェアキーボードからもらっと応用
-
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に入力タイプを設定することができます。
それはのKeyListenerを削除しませんsetRawInputTypeメソッドの呼び出しに対応しているので、、しないだろうXMLのinputTypeパラメータを設定します。
私は、Aビットカスタムの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);
}