繁体   English   中英

检测在自定义键盘 (IME) Android 之外按下的 EditText

[英]Detect EditText pressed outside of custom keyboard (IME) Android

我正在开发一个带有搜索框的 android 键盘。 我可以检测到用户何时按下我的搜索框,然后将他键入的文本提交到我的搜索框中。

问题是我无法检测到用户何时按下原始 EditText(打开键盘的那个),因为这不是我的观点。

这是键盘的基本外观:

键盘

键盘被蓝色方块包围,我的编辑文本被红色方块包围。

我尝试在我的 editText 上设置这个监听器,但没有运气:( 来源

editText.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean hasFocus) {
        if (hasFocus) {
            Toast.makeText(getApplicationContext(), "Got the focus", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(), "Lost the focus", Toast.LENGTH_LONG).show();
        }
    }
});

当我按下另一个 editText 时,没有调用侦听器。 可能是因为它不是我的服务的一部分。

即使我可以知道如何检测在我的服务布局之外的屏幕上的点击,它也会很棒。

谢谢你的帮助!

尽管您的问题非常基本,但我想我可以在这里提供帮助,请尝试以下代码片段,并告诉我它是否适合您。

public void showKeyboard(View view) {
    InputMethodManager myKeyboard = (InputMethodManager) getSystemService(Context
            .INPUT_METHOD_SERVICE);
    myKeyboard.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

}

public void hideKeyboard() {
    InputMethodManager myKeyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    myKeyboard.hideSoftInputFromWindow(EditText1.getWindowToken(), 0);
}

这也是一个重复的问题,请参见此处: Android:当焦点位于 EditText 时自动显示软键盘

请在此处发布问题之前尝试使用 ol' 谷歌,当您等待其他人对您的帖子发表评论时,它会大大拖延您的进度:) 如果您发布重复的问题并且没有得到足够的答案,也可以作为旁注对您的帖子进行投票,Stack Overflow 可以禁止您发帖。

您也可以查看有关此主题的 Android 开发人员文档: https : //developer.android.com/training/keyboard-input/visibility

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM