隐藏键盘后未调用Android onclicklistener

时间:2019-11-06 11:02:03

标签: android android-edittext

在我的布局中,我有一个editText和一个button

如果editText获得或失去焦点,键盘显示或隐藏的内容。为此,我在OnFocusChangeListener上添加了editText,并隐藏或显示了看着hasFocus标志的键盘。

问题在于,当editText拥有焦点并且如果我触摸按钮可以看到键盘时,就会调用focusChangeListener,我会隐藏键盘,但是button { {1}}没有被调用。隐藏键盘后,我必须再次单击该按钮。

如果相反,当editText失去焦点时出现延迟(onClickListener),就会调用postDelayed({ hideKeyboard() }, 500)

添加延迟似乎很容易。如何隐藏键盘并仍然收到按钮点击?

1 个答案:

答案 0 :(得分:0)

使用此方法单击按钮时手动隐藏键盘并删除焦点监听器

public void hideKeyboard(View view) {
    if (view != null) {
         InputMethodManager inputMethodManager = (InputMethodManager) 
            getSystemService(Context.INPUT_METHOD_SERVICE);
         inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
}

要专注于屏幕启动时EditText,可以在xml中使用<requestFocus/>