0

Android アプリにダイアログ ボックスがあります。これはダイアログ上の唯一の EditText コントロール (その他はスピナーとボタン) であるため、ダイアログが表示されたときにフォーカスを取得します。これにより、スクリーン キーボードが表示されなくなります。つまり、ハードウェア キーボードがない限り、ボックスにテキストを簡単に入力することはできません。

これは、コントロールがフォーカスで開始され、キーボードを表示するかどうかのシステム チェックが onfocus イベントで発生するためだと思います (ただし、断言できませんでした)。プログラムでスクリーン キーボードを表示する方法はありますか?

4

1 に答える 1

1

ユーザーが画面上のボタンを押したときにキーボードを強制的に開く機能を実装するには、以下が役立ちます。

InputMethodManager inputMethManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethManager.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

ただし、ダイアログ ウィンドウのフォーカスを取り戻すのに役立つ別の方法を以下に示します。このコードは、AlertDialog によって最初に設定されたフラグをリセットして、ソフトウェア キーボードを開く必要があります。このコードは、ダイアログ ウィンドウの作成後に配置する必要があります。

dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
于 2013-08-12T21:02:39.837 に答える