Activity終了時(finish)コードでソフトキーボードを非表示にする(ソフトキーボードが表示されている場合)
1137 ワード
需要:インタフェースfinishが消え、ソフトキーボードが表示されている場合は非表示にします.
シナリオ1:
以上の方法は、1つのインタフェース(dialog形式のacitivity)で可能であるが、別のインタフェース(通常、画面全体を占めるactivity)ではだめである.具体的な原因はまだ見つかっていない.
シナリオ2:
終了インタフェースのリスニングイベントに配置:
finishの前にキーボードを隠すと問題が解決します
いくつかの基礎知識:
AndroidでのInputMethodManagerクラスの使い方
シナリオ1:
@Override
protected void onDestroy() {
super.onDestroy();
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
}
}
以上の方法は、1つのインタフェース(dialog形式のacitivity)で可能であるが、別のインタフェース(通常、画面全体を占めるactivity)ではだめである.具体的な原因はまだ見つかっていない.
シナリオ2:
終了インタフェースのリスニングイベントに配置:
case R.id.rlBackArrow:
hideInput(this, etContent);
finish();
break;
private void hideInput(Context context, View view) {
InputMethodManager inputMethodManager =
(InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
finishの前にキーボードを隠すと問題が解決します
いくつかの基礎知識: