//隐藏软键盘 输入完后自动保存
@Override
public boolean dispatchTouchEvent(MotionEvent ev) { if(ev.getAction()==MotionEvent.ACTION_DOWN){ View v=this.getCurrentFocus(); if(isShouldHideKeyboard(v,ev)){
v.clearFocus(); hidekeyboard(v.getWindowToken());
}
}
return super.dispatchTouchEvent(ev);
}
private Boolean isShouldHideKeyboard(View v,MotionEvent ev) {
if (v != null && (v instanceof EditText)) {
int[] l = {0, 0};
v.getLocationInWindow(l);
int left = l[0], top = l[1], bottom = top + v.getHeight(), right = left + v.getWidth();
if (ev.getX() > left && ev.getX() < right && ev.getY() > top && ev.getY() < bottom) {
return false;
} else {
return true;
}
} return false;
}
private void hidekeyboard(IBinder windowToken) {
if(windowToken!=null){ InputMethodManager manager= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); manager.hideSoftInputFromWindow(windowToken,InputMethodManager.HIDE_NOT_ALWAYS); } }