Android AlertDialog. Строитель и программная клавиатура - PullRequest
2 голосов
/ 05 марта 2011

Можно ли автоматически отображать программную клавиатуру, когда отображается диалог с фокусом EditText , созданный AlertDialog.Builder ?

Я видел какое-то обсуждение этой темы, но не нашел никакого рабочего решения.

Ответы [ 2 ]

3 голосов
/ 02 июня 2015

Существует более одного способа снятия шкуры с мангусты.

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();

Хорошо работает как на телефоне, так и на планшете

Ссылка

1 голос
/ 16 августа 2011

Решено

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);
    }
}
...