2

AlertDialog.Builderによって作成されたフォーカスされたEditTextのダイアログが表示されたときに、ソフトキーボードを自動的に表示することはできますか?

私はこのトピックについていくつかの議論を見てきましたが、実用的な解決策は見つかりませんでした。

4

2 に答える 2

3

マングースの皮を剥ぐ方法は複数あります。

AlertDialog.Builder builder = new AlertDialog.Builder(CurrentActivityName.this);
builder.setTitle(“Title”);
builder.setMessage(“Message”);

etc..

//This is the crucial part 
AlertDialog alertDlg = builder.create();
alertDlg.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

alertDlg.show();

それは電話とタブレットの両方でうまく機能します

参照

于 2015-06-02T14:54:41.693 に答える
1

これを解決しました

InputMethodManager imm = (InputMethodManager)
            SettingsActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);

    mDialog = mDialogBuilder.create();

    mDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {

        public void onDismiss(DialogInterface dialog) {
            dismissSoftKeyboard();
        }
    });

    mPinDialog.show();
    showSoftKeyboard();

}

private void showSoftKeyboard() {
    if (imm != null) {
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    }
}

private void dismissSoftKeyboard() {
    if (imm != null) {
        imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
    }
}
于 2011-08-16T11:13:05.560 に答える