AlertDialog ポップアップに EditBox があります。AlertDialog がポップアップする瞬間に仮想キーボードをポップアップするようにしました (そのため、キーボードを表示するためにその白いフィールドをクリックする必要はありません)。
InputMethodManager imm = (InputMethodManager)
Asocijacije.this.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null){
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}
しかし、入力が終わったら、キーボードの [完了] をクリックし、AlertDialog で [OK] をクリックする必要があります。問題は、ユーザーが入力を終えたらすぐに [OK] ボタンに移動し、[OK] をクリックした後も仮想キーボードが画面に表示されたままになることです。デバイスの [戻る] ボタンをクリックする必要があります。OKボタンが押されたらキーボードをクリアする方法は?
役立つ場合は、私の AlertDialog コード全体を次に示します。
case R.id.bKonacno:
}
LayoutInflater layoutInflaterK = LayoutInflater.from(context);
View promptViewK = layoutInflaterK.inflate(R.layout.popup_answer, null);
AlertDialog.Builder alertDialogBuilderK = new AlertDialog.Builder(context);
// set prompts.xml to be the layout file of the alertdialog builder
alertDialogBuilderK.setView(promptViewK);
final EditText inputK = (EditText)promptViewK.findViewById(R.id.userInput);
InputMethodManager imm = (InputMethodManager)
Asocijacije.this.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null){
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}
alertDialogBuilderK
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// get user input and set it to result
//some code of mine
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create an alert dialog
AlertDialog alertK = alertDialogBuilderK.create();
alertK.show();
break;