我的AlertDialog弹出窗口中有一个EditBox。当AlertDialog弹出时,我让它弹出虚拟键盘(所以我不需要点击那个白色字段来显示键盘),这样:
InputMethodManager imm = (InputMethodManager)
Asocijacije.this.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null){
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}
但是当我完成输入时,我需要在键盘上单击“完成”,然后在AlertDialog中单击“确定”。问题是,用户在完成输入后直接进入“确定”按钮,单击“确定”后,虚拟键盘将保持在屏幕上。他们现在必须单击他们设备上的后退按钮。按下确定按钮后如何清除键盘?
这是我的整个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;
答案 0 :(得分:1)
按下Ok
/ Cancel
按钮后,您可以执行以下操作。
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
阅读Close/hide the Android Soft Keyboard了解更多信息。希望能帮助到你。
答案 1 :(得分:0)
尝试将以下内容添加到按钮中:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);