java - Android - 如果按键时 EditText 为空,如何隐藏软键盘?

标签 java android listener keyboard-events

我正在开发一个进行计算的项目。因此,我的 EditText 框正在工作,并且如果用户单击“DONE”(或任何其他类型的按钮、GO、NEXT 等),我想隐藏 softkeyboard。 ) 并且 EditText 框为空

像这样:

EditText 为空 -> 用户单击按钮 -> 软键盘隐藏

我有这段代码,是我使用互联网上的教程和指南编写的

我确实知道它是管理软键盘中按钮的监听器

TextView.OnEditorActionListener mEditor = new TextView.OnEditorActionListener()
{
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
    {
        if (actionId == EditorInfo.IME_ACTION_DONE)
        {
            //Calculations method
        }

        return false;
    }
};

所以,我的问题是:当 EditText 为空时,如何管理监听器并且不会出现错误?

最佳答案

您可以使用,例如:

TextView.OnEditorActionListener mEditor = new TextView.OnEditorActionListener()
{
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
    {
        if (actionId == EditorInfo.IME_ACTION_DONE)
        {
            if (!TextUtils.isEmpty(v.getText().toString())){
                // you calculations method
            } else {
                InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
                Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(v.getApplicationWindowToken(),
                InputMethodManager.HIDE_NOT_ALWAYS);
            }
        }

        return false;
    }
};

关于java - Android - 如果按键时 EditText 为空,如何隐藏软键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40198978/

相关文章:

java - 将 Eclipse 与 MySQL 集成

java - 如何在Edittext afterTextChanged 中使用两位数?

android - 如何将按钮一半放在 cardview 上,一半放在父布局上

database - 如何通过网络访问Oracle数据库?

java - ComboBoxModel 事件不起作用

java - 使用匿名内部类 - 添加监听器和传递实例时发生冲突

java - Scheme 和 Clojure 都可读的模拟 Java 属性文件的语法?

java - 在文件上写入 DOM 时 XMLNS 属性被删除

android - Windows 10 上的 genymotion "unable to load virtualbox engine"和 Virtualbox 错误 "Result Code: E_FAIL (0x80004005)"

android - com.android.volley.NoConnectionError : javax.net.ssl.SSLException : Connection closed by peer on 4. 4.4 设备(适用于 7.0.1)