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);
}
}
});
それを適用する方法について何か考えはありますか?