2016-03-07 30 views
0

我碰到這段代碼,但我想知道這段代碼做了什麼,InputMethodManager究竟是什麼以及我的類中應該在哪裏輸入這段代碼?它會進入onCreate()方法還是應該創建一個新的方法?再次,我想了解這種方法是如何工作的。在EditText視圖中輸入後隱藏鍵盤

感謝提前:)你的答案我感謝幫助

InputMethodManager inputManager = 
    (InputMethodManager) context. 
     getSystemService(Context.INPUT_METHOD_SERVICE); 
    inputManager.hideSoftInputFromWindow(
    this.getCurrentFocus().getWindowToken(), 
    InputMethodManager.HIDE_NOT_ALWAYS); 

回答

2

javadoc of InputMethod是相當描述一下

中央系統API的整體的輸入法框架(IMF )體系結構,仲裁應用程序和當前輸入方法之間的交互。您可以使用Context.getSystemService()檢索此接口的實例。

你的具體情況你interseted在這種使用情況下

的輸入法(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

Here是其使用的例子。

0
View view = this.getCurrentFocus(); 
if (view != null) { 
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
} 
+0

請不要添加純代碼的答案。也可以添加關於答案的簡要說明。 –