@Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_ENTER: if (mNameChangeListener != null) { String name = getText().toString().trim(); if (!TextUtils.isEmpty(name)) { // use new name setText(name); mNameChangeListener.onNameChanged(name); } else { // use original name setText(mOriginalName); } clearFocus(); // hide the keyboard mInputMethodManager.hideSoftInputFromWindow(getWindowToken(), 0); return true; } break; default: break; } return super.onKeyUp(keyCode, event); }
@Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(focused, direction, previouslyFocusedRect); if (!focused && mNameChangeListener != null) { String name = getText().toString().trim(); if (!TextUtils.isEmpty(name)) { // use new name setText(name); mNameChangeListener.onNameChanged(name); } else { // use original name setText(mOriginalName); } // hide the keyboard mInputMethodManager.hideSoftInputFromWindow(getWindowToken(), 0); } else if (focused) { mOriginalName = getText().toString(); } }