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,这是最方便的做法。
网友评论