如何在 InputMethodManager#hideSoftInputFromWindow 中使用 ResultReceiver
How can I use ResultReceiver in InputMethodManager#hideSoftInputFromWindow
我有一些代码:
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0, new ResultReceiver(null) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
keyboardClosed();
}
});
但是,运行 这在 4.3 模拟器上永远不会调用 onReceiveResult()
方法。
我确定我做错了什么,但看不到什么...
任何人都可以向我提供一些有关如何正确执行此操作或为什么它不起作用的详细信息吗?
如果 hideSoftInputFromWindow
returns false
,ResultReceiver
不会被调用。
你可以检查这个值:
boolean hide = inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0, new ResultReceiver(null) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
keyboardClosed();
}
});
if (!hide) {
// already hidden
keyboardClosed();
}
我有一些代码:
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0, new ResultReceiver(null) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
keyboardClosed();
}
});
但是,运行 这在 4.3 模拟器上永远不会调用 onReceiveResult()
方法。
我确定我做错了什么,但看不到什么...
任何人都可以向我提供一些有关如何正确执行此操作或为什么它不起作用的详细信息吗?
hideSoftInputFromWindow
returns false
,ResultReceiver
不会被调用。
你可以检查这个值:
boolean hide = inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0, new ResultReceiver(null) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
keyboardClosed();
}
});
if (!hide) {
// already hidden
keyboardClosed();
}