簡體   English   中英

在EditText視圖中輸入后隱藏鍵盤

[英]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); 

InputMethodJavadoc對此具有描述性

總體輸入法框架(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM