Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检测软键盘隐藏状态_Android_Android Softkeyboard - Fatal编程技术网

Android 检测软键盘隐藏状态

Android 检测软键盘隐藏状态,android,android-softkeyboard,Android,Android Softkeyboard,每当软键盘状态从“显示”变为“隐藏”时,都希望Toasta文本。这里我只想从EditText中getText(),每次我点击EditText时,软键盘必须打开,按下后退或返回后,文本必须显示为Toast 提前感谢没有用于键盘状态检测的直接侦听器,因此您需要一些编程实现,如下所示 private boolean wasKeyboardOpen = false; try { activityMainView.getViewTreeObserver().addOnGlobalLayo

每当软键盘状态从“显示”变为“隐藏”时,都希望
Toast
a文本。这里我只想从
EditText
getText()
,每次我点击
EditText
时,软键盘必须打开,按下后退或返回后,文本必须显示为
Toast


提前感谢

没有用于键盘状态检测的直接侦听器,因此您需要一些编程实现,如下所示

private boolean wasKeyboardOpen = false;

try {
        activityMainView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {

                Rect r = new Rect();
                activityMainView.getWindowVisibleDisplayFrame(r);

                int heightDiff = activityMainView.getRootView().getHeight() - (r.bottom - r.top);
                if (heightDiff > 100) {
                    wasKeyboardOpen = true;
                    // kEYBOARD IS OPEN

                } else {
                    if (wasKeyboardOpen) {
                        wasKeyboardOpen = false;
                        // Do your toast here

                    }
                    // kEYBOARD IS HIDDEN
                }
            }
        });
    } catch (Throwable e) {
        e.printStackTrace();
    }

将textChangeListener用于带有标志的textView,当您在textView中并按下back时,只需为您的消息祝酒@你能帮我发一些代码吗。我会非常感谢你的。谢谢老板。它对我有用。我只是错过了一个优势。请不要说嘘声,伙计,只是朋友,接受答案,以便其他人可以信任和使用答案。你肯定,我还有一个问题,使其成为强有力的答案。过了一段时间,我的吐司一次又一次地冒出来。只是想知道为什么这个代码会一次又一次地运行?因为默认情况下键盘是隐藏的。由于它是一个globallayout侦听器,所以每当活动大小内的布局或视图发生微小更改时,都会调用此函数。因此,为了进行确认,您需要管理最后一个状态的布尔标志。我只是更新了答案。