Отображение виртуальной клавиатуры при открытии объекта AlertDialog.Builder

Мой код для открытия диалогового окна ввода выглядит следующим образом:

final AlertDialog.Builder alert = new AlertDialog.Builder(this);  
alert.setTitle("Dialog Title");  
alert.setMessage("Request information");  
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.edittextautotextlayout, null);
final EditText inputBox = (EditText) textEntryView.findViewById(R.id.my_et_layout);
alert.setView(inputBox);

Это работает нормально, за исключением того, что мне нужно коснуться строки ввода текста до появления виртуальной клавиатуры.

Следуя совету, данному здесь Я попытался вставить:

inputBox.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            alert.getWindow().setSoftInputMode( 
               WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
        }
    }
});

, но объекты Eclipse, что «метод getWindow () не определен для типа AlertDialog.Builder».

Похоже, что код setOnFocusChangeListener работает для объекта AlertDialog, но не для AlertDialog.Builder. Как мне изменить свой код, чтобы виртуальная клавиатура отображалась автоматически.

32
задан Community 23 May 2017 в 10:30
поделиться