質問

の開発をしてい上のアプリケーションでハードウェアデバイスは内蔵ハードウェアキーボードなスライドでは、常に見えるようなブラックベリー).そのため、思いのソフトキーボードに表示するよう願います。私が認識し 他の質問 と、次のコード:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

がわからないがこのコードを非表示にしますソフトキーボードのすべての場所であがった。していた追加のコード Activity.onUserInteraction 近.そのキーボードが表示され onUserInteraction を実行す.

またの追加は以下の私の <Activity>:

<activity 
    android:windowSoftInputMode="stateAlwaysHidden"
>

ソフトキーボードが表示されます。

役に立ちましたか?

解決

あなたのアプリケーションは、何もしてはいけません。デバイスのファームウェアは、単にハードウェアキーボードを持っている他のすべてのAndroidデバイスと同様に、ハードウェアキーボードが表示さに基づいてソフトキーボードを抑制する構成が含まれている必要があります。それが起こっていない場合は、ハードウェアメーカーに話をして、彼らはこれを対処することを計画しているかどうかを確認します。

他のヒント

簡単に回避策のための明日を発表

私の新しいイメー空ます。こちらはopenSource事業のために一部のコードです。

場合などについて知りたいと考えてい入力方法は、 新入力方法.

の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);  
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top