[英]Hiding the keyboard after typing in EditText view
我碰到了這段代碼,但是我想知道這段代碼的作用以及InputMethodManager的確切含義,我應該在類中的什么地方鍵入該代碼? 它會放在onCreate()方法中還是應該創建一個新方法? 同樣,我想了解這種方法的工作原理。
謝謝您的預先答復:)感謝您的幫助
InputMethodManager inputManager =
(InputMethodManager) context.
getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(
this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
InputMethod的Javadoc對此具有描述性
總體輸入法框架(IMF)架構的中央系統API,它可仲裁應用程序與當前輸入法之間的交互。 您可以使用Context.getSystemService()檢索此接口的實例。
在您的特定情況下,您對這個用例感到困惑
輸入法(IME)實現了特定的交互模型,允許用戶生成文本。 系統綁定到當前使用的輸入方法,從而導致其創建和運行,並告訴其何時隱藏和顯示其UI。 一次僅運行一個IME。
同樣從hideSoftInputFromWindow的描述中,您可以提取
public boolean hideSoftInputFromWindow (IBinder windowToken, int flags)
hideSoftInputFromWindow(IBinder,int,ResultReceiver)的同義詞,沒有結果:請求從當前正在接受輸入的窗口的上下文中隱藏軟輸入窗口。 參量
windowToken IBinder
:發出請求的窗口的令牌,由View.getWindowToken()返回。
flags int
:提供其他操作標志。 當前可能為0或設置了HIDE_IMPLICIT_ONLY位。
這使得this
在你的代碼是指一個View
,因此代碼是一個類的一部分extends View
這是一個用法示例。
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.