12.消除軟鍵盤
12.1 問題
需要通過使用者介面上的某個事件隱藏或消除螢幕上的軟鍵盤。
12.2 解決方案
(API Level 2)
用InputMethodManager.hideSoftInputFromWindow()方法可以讓輸入法管理器顯式地隱藏可見的輸入法。
12.3 實現機制
下面這個示例演示瞭如何在View.OnClickListener中呼叫該方法:
public void onClick(View view){ InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(),0); }
hideSoftInputFromWindow()方法的引數是一個IBinder視窗令牌。可以用View.getWindowToken()從附加到視窗的View物件獲得該令牌。大部分情況下,每個事件的回撥方法都會有一個引用指向正在編輯的TextView,或者點選以生成事件的View(如某個按鍵)。通過呼叫這些View物件獲得視窗令牌,再將其傳遞給InputMethodManager,這是最方便的做法。