hideSoftInputFromWindow

hideSoftInputFromWindow

我有一些密码:

inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0, new ResultReceiver(null) {
     @Override
     protected void onReceiveResult(int resultCode, Bundle resultData) {
          keyboardClosed();
     }
});

但是,在4.3仿真器上运行这个函数时,onReceiveResult()方法永远不会被调用。
我肯定我做错了什么,但看不出…
有谁能给我提供一些如何正确地做这件事的细节或者为什么它不起作用?

最佳答案

如果ResultReceiver返回hideSoftInputFromWindow,则不调用false。您可以检查此值:

boolean hide = inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0, new ResultReceiver(null) {
    @Override
    protected void onReceiveResult(int resultCode, Bundle resultData) {
       keyboardClosed();
    }
});
if (!hide) {
    // already hidden
    keyboardClosed();
}

关于android - 如何在InputMethodManager#hideSoftInputFromWindow中使用ResultReceiver,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27858333/

10-09 03:46