嗨,当我想最小化键盘时,我正在构建键盘应用程序,它可以返回到上一个活动。例如如果我在whatsapp上与朋友聊天,并且想要最小化按下后退按钮的键盘,它将返回到聊天列表而不是最小化。所以我所需要的只是当按下后退按钮时,它将使键盘最小化,而不是返回到上一个活动。
如果可以的话请帮忙。
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case 4:
if (event.getRepeatCount() == 0 && this.mInputView != null && this.mInputView.handleBack()) {
return PROCESS_HARD_KEYS;
}
case 66:
return false;
case 67:
if (this.mComposing.length() > 0) {
onKey(-5, null);
return PROCESS_HARD_KEYS;
}
break;
default:
if (keyCode == 62 && (event.getMetaState() & 2) != 0) {
InputConnection ic = getCurrentInputConnection();
if (ic != null) {
ic.clearMetaKeyStates(2);
keyDownUp(29);
keyDownUp(42);
keyDownUp(32);
keyDownUp(46);
keyDownUp(43);
keyDownUp(37);
keyDownUp(32);
return PROCESS_HARD_KEYS;
}
}
if (this.mPredictionOn && translateKeyDown(keyCode, event)) {
return PROCESS_HARD_KEYS;
}
}
return super.onKeyDown(keyCode, event);
}
最佳答案
只要替换这种希望,它将起作用。
public boolean onKeyDown(int keyCode, KeyEvent event, View view) {if ((keyCode == KeyEvent.KEYCODE_BACK)) {
// hide keyboard here
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);}
switch (keyCode) {
case 4:
if (event.getRepeatCount() == 0 && this.mInputView != null && this.mInputView.handleBack()) {
return PROCESS_HARD_KEYS;
}
case 66:
return false;
case 67:
if (this.mComposing.length() > 0) {
onKey(-5, null);
return PROCESS_HARD_KEYS;
}
break;
default:
if (keyCode == 62 && (event.getMetaState() & 2) != 0) {
InputConnection ic = getCurrentInputConnection();
if (ic != null) {
ic.clearMetaKeyStates(2);
keyDownUp(29);
keyDownUp(42);
keyDownUp(32);
keyDownUp(46);
keyDownUp(43);
keyDownUp(37);
keyDownUp(32);
return PROCESS_HARD_KEYS;
}
}
if (this.mPredictionOn && translateKeyDown(keyCode, event)) {
return PROCESS_HARD_KEYS;
}
}
return super.onKeyDown(keyCode, event);
}