Android: автоматическое отображение программной клавиатуры когда фокус находится на EditText
Я прочитал этот пост, который автоматически показывает виртуальную клавиатуру при отображении диалогового окна. однако это не работает для меня. есть идеи почему? даже несмотря на то, что текст редактирования автоматически оказывается в фокусе при появлении диалогового окна, событие не запускается. Я также прочитал ответ onpostresume, но не знаю, как его применить. любая помощь приветствуется.
final Dialog dialog = new Dialog(ThesisI.this);
dialog.setContentView(R.layout.budget_dialog);
final EditText et = (EditText) dialog.findViewById(R.id.textComments);
final Button enter = (Button) dialog.findViewById(R.id.buttonEnter);
final Button cancel = (Button) dialog.findViewById(R.id.buttonCancel);
enter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
/**cancel */
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
dialog.show();
et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
однако я заметил, что если я изменю фокус на кнопку, то снова сосредоточусь на тексте редактирования. это событие работает, используя этот код ниже.
et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMgr.toggleSoftInput(0, 0);
}
}
});
любая идея о том, как его применить?