Мой код для открытия диалогового окна ввода выглядит следующим образом:
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. Как мне изменить свой код, чтобы автоматическая настройка мягкой клавиатуры.