当我点击不在edittext中的某个地方时,我想在alertdialog中隐藏键盘。我一直在stackoverflow和谷歌上看起来很好的答案,但我还没有找到一个。那么请你帮帮我吧。我有一个带有4个edittext框的alertDialog布局,如果我在外面点击它,我想关闭键盘。
我希望你能帮助我们,这个人不是重复的答案,因为其他人不是为我工作而且他们不是为了警惕。
谢谢你, 干杯:}
答案 0 :(得分:0)
让我们说父布局是LinearLayout,你在其中有EditText。
因此找到线性布局的ID。
linearLayout =(LinearLayout)来自XML的findViewById(R.id.linearLayout)。
linearLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(v == relAppointment1) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context
.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
return true;
}
return false;
}
});
希望这能解决问题。
答案 1 :(得分:0)
@Bhargav Jhaveri
我编辑了你的代码:
final Dialog dialog = new Dialog(test.this); //created a dialog
LinearLayout linearLayout= (LinearLayout) dialog.findViewById(R.id.LinearLayout01); //This is dialog layout
final EditText editText=(EditText)dialog.findViewById(R.id.edt1); //this is edittext in dialog
linearLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(v == relAppointment1) { //What is relAppointment1, variable is undefined
InputMethodManager imm = (InputMethodManager) getBaseContext().getSystemService(Context
.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
return true;
}
return false;
}
});
但什么是relAppointment1?
感谢您的回答。请检查我的代码,一切正常吗? 干杯:]