3

ハードウェア キーボードが組み込まれているハードウェア デバイスでアプリケーションを開発しています。ハードウェア キーボードはスライドしないので、常に表示されます (ブラックベリーのように)。したがって、アプリケーション全体でソフト キーボードを表示することは決してありません。次のコード行を提供する別の SOの質問を認識しています。

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

しかし、このコードを配置して、アクティビティに表示される可能性のあるすべての場所でソフト キーボードを非表示にする場所がわかりません。コードをActivity.onUserInteraction無駄に追加しようとしました。実行にキーボードが表示されるようです。onUserInteraction

また、次を my に追加しようとしました<Activity>:

<activity 
    android:windowSoftInputMode="stateAlwaysHidden"
>

ソフトキーボードは引き続き表示されます。

4

5 に答える 5

5

アプリケーションは何もしないでください。デバイスのファームウェアには、ハードウェア キーボードを備えた他のすべての Android デバイスと同様に、ハードウェア キーボードが表示されていることに基づいてソフト キーボードを禁止する構成が含まれている必要があります。それが起こらない場合は、ハードウェア メーカーに相談して、これに対処する予定があるかどうかを確認してください。

于 2010-03-12T00:43:39.560 に答える
2

EditTextのinputTypeが0の場合、そのEditTextが選択されているときにソフトキーボードがポップアップすることはありません。

EditText editText = findViewById(R.id.edit_text);
editText.setInputType(0);

もちろん、これはアプリケーション内のすべてのEditTextに対して実行する必要があります。または、いつでもEditTextをサブクラス化して、コンストラクターで入力タイプを0に設定できます。

xml inputTypeパラメーターを設定しても、KeyListenerが削除されないsetRawInputTypeメソッドの呼び出しに対応するため、実行されません。

于 2011-01-18T09:08:26.593 に答える
2

明日のプレゼンテーションの簡単な回避策:

空のビューで新しい IME を作成します。コードを確認するための 2 つのオープンソース プロジェクトを次に示します。

インプット メソッドについて詳しく知りたい場合は、インプット メソッドの作成を参照してください。

于 2010-03-12T01:54:49.920 に答える
2

少しカスタムのEditTextでonCheckIsTextEditorメソッドをオーバーライドすることで解決しました。

@Override
public boolean onCheckIsTextEditor() {
    return false;
}
于 2011-03-16T07:48:04.317 に答える