我遇到了这段代码,但我想知道这段代码是做什么的,究竟什么是InputMethodManager,我应该在哪里输入我的类中的代码?它会进入onCreate()方法还是应该创建一个新方法?而且,我想了解这种方法的工作原理。
感谢您的回答:)我感谢您的帮助
InputMethodManager inputManager =
(InputMethodManager) context.
getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(
this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
答案 0 :(得分:2)
javadoc of InputMethod非常具有描述性
整体输入法框架(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
Here就是一个例子。
答案 1 :(得分:0)
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}