您需要创建自定义EditText以捕获keyBoardDismissEvent。
你可以尝试这样的事情:
public class CustomEditText extends EditText {
private OnKeyboardDismissListener listener;
public void setOnKeyBoardDismissListener(OnKeyboardDismissListener listener) {
this.listener = listener;
}
public CustomEditText(Context context) {
super(context);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && listener != null)
listener.onKeyBoardDismiss();
return super.onKeyPreIme(keyCode, event);
}
static interface OnKeyboardDismissListener {
void onKeyBoardDismiss();
}
}
在布局
<YourPackageName.CustomEditText android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
内活动:
CustomEditText editText = (CustomEditText) findViewById(R.id.editText);
editText.setOnKeyBoardDismissListener(new OnKeyboardDismissListener() {
@Override
public void onKeyBoardDismiss() {
MainActivity.this.finish();
}
});
我会感到高兴,如果你读了我的问题完全。当键盘出现时,onBackPressed()不会被触发。 – Kanth
我的不好,当我看到你的问题时,并没有清楚地显示出来...... –