activity結束時(finish)用程式碼讓軟鍵盤隱藏(如果軟鍵盤顯示)
阿新 • • 發佈:2019-02-15
需求:介面(activity)finish消失的同時,如果軟鍵盤顯示,則讓其隱藏
方案一:
@Override protected void onDestroy() { super.onDestroy(); InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0); } }
以上方法在一個介面(dialog形式的acitivity)是可以的,但是在另一個介面(正常的,佔滿整個螢幕的activity)卻不行了。還沒找出具體原因。
方案二:
放在結束介面的監聽事件中:
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之前隱藏鍵盤,問題就解決了
一些基礎知識: