There was a slight quirk that I ran into while working on my app. If I were editing text and clicked "Save" on the activity, it'd close the screen but keep the keyboard open.
I'd then have to press the BACK button to close it. A small but somewhat irritating quirk. Luckily, its an easy thing to fix.
First, define an "OnFocusChangeListener":
private OnFocusChangeListener hideKeyboard = new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
};
When you're creating and setting up your edit boxes, just set the following listeners:
txtEmail.setOnFocusChangeListener(hideKeyboard);
txtUsername.setOnFocusChangeListener(hideKeyboard);
There you have it. It should now hide the keyboard automatically.
If no other objects take focus, then just call the listener manually.
hideKeyboard.onFocusChange(txtUsername, false);
hideKeyboard.onFocusChange(txtEmail, false);
[ Source ]