1

私はSOに関する多くの回答を調査し、ダイアログがポップアップしたときにキーボードを表示する次のコードを考え出しました。

final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Title");
    final EditText input = new EditText(this);
    input.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean focused) {
            alertDialog
                    .getWindow()
                    .setSoftInputMode(
                            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

        }
    });
    input.setFocusable(true);
    input.requestFocus();
    alertDialog.setView(input);

            alertDialog.show();

ダイアログが表示されますが、キーボードがポップアップしません。それが違いを生むのであれば、これはすべてonTouch(...)メソッド内にあります。

私のアプリはランドスケープモードのみです。ポートレートモードでは、表示されていることがわかります。どうしてこれなの?

どんな助けでも大歓迎です。

4

1 に答える 1

0

私を失望させたのはランドスケープモードだったようです。次のコードは、問題をすぐに解決しました。

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
                        InputMethodManager.HIDE_IMPLICIT_ONLY);
                imm.showSoftInput(input, InputMethodManager.SHOW_FORCED);
                alertDialog
                        .getWindow()
                        .setSoftInputMode(
                                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
于 2013-03-31T20:54:09.597 に答える