如何编程关闭/隐藏安卓软键盘?

在Android开发中,有时候需要通过程序控制软键盘的显示和隐藏,比如当输入完成时,我们可以调用相关的API来关闭软键盘,以提高用户体验。

要关闭软键盘,可以使用 InputMethodManager 类的 hideSoftInputFromWindow 方法,该方法有三个参数:

  1. IBinder类型的参数,表示当前窗口的 token
  2. int类型的参数,表示操作类型,一般设置为0
  3. ResultReceiver类型的参数,用于接收软键盘的状态,可以设置为 null

下面是一个实例代码:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);

在上面的代码中,首先通过 getSystemService 方法获取 InputMethodManager 对象,然后调用 hideSoftInputFromWindow 方法来关闭软键盘,参数 getCurrentFocus().getWindowToken() 表示当前窗口的 token

另外,还可以使用 InputMethodManager 类的 toggleSoftInput 方法来切换软键盘的显示状态,该方法有两个参数:

  1. int类型的参数,表示操作类型,可以设置为 InputMethodManager.HIDE_IMPLICIT_ONLYInputMethodManager.SHOW_FORCED
  2. int类型的参数,表示软键盘的显示状态,可以设置为 01

下面是一个实例代码:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);

在上面的代码中,首先通过 getSystemService 方法获取 InputMethodManager 对象,然后调用 toggleSoftInput 方法来切换软键盘的显示状态,参数 InputMethodManager.HIDE_IMPLICIT_ONLY 表示只隐藏没有显式请求显示的软键