InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); // onCreate 中呼叫無效
在 onCreate 或 View 尚未附加到視窗時,getWindowToken() 回傳 null,導致隱藏失敗。
// 在 Activity onCreate 的 setContentView 之前
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
這會讓 Activity 啟動時**預設不彈出鍵盤**,除非使用者主動點擊 EditText。
editText.post(() -> {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
});
用 post(Runnable) 確保 View 已有 Window Token。
android:focusableInTouchMode="true" 並實作 OnTouchListener 呼叫隱藏。getDialog().getWindow().setSoftInputMode(...)。imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT)。