如何清除对editext的关注?其他StackOverflow帖子没有太大帮助

问题描述

我看过其他StackOverflow帖子,但其中许多不起作用,或者评论说它们不起作用。我想知道如何清除对edittext的关注。我希望当我关闭键盘时,它也会失去焦点,但这并没有发生。

因此,每当有人退出应用程序并返回(应用程序在后台运行)时,常规键盘都会显示,即使不应该这样。我有一个用于管理键盘的完整系统。

显示/关闭键盘的代码

private void closeEmojiKeyboard()
    {
        ivEmoji.setVisibility(View.VISIBLE);
        ivKeyboard.setVisibility(View.GONE);
        showKeyboard(etMessage);
        llEmojiKeyboard.setVisibility(View.GONE);
    }

    private void showKeyboard(EditText view)
    {
        view.requestFocus();
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(view,InputMethodManager.SHOW_IMPLICIT);
    }

当有人打开表情符号键盘时用于隐藏键盘的代码

ivEmoji.setVisibility(View.GONE);
        ivKeyboard.setVisibility(View.VISIBLE);
        hideKeyboard(etMessage);
        llEmojiKeyboard.setVisibility(View.VISIBLE);

以及单击editext时隐藏表情符号键盘的代码

llEmojiKeyboard.setVisibility(View.GONE);
                showKeyboard(etMessage);
                ivEmoji.setVisibility(View.VISIBLE);
                ivKeyboard.setVisibility(View.GONE);
                rvMessages.scrollToPosition(messagesList.size()-1);

有人可以与我分享一些代码来帮助我集中精力于我的edittext吗?谢谢。

解决方法

可以

例如1。

 editText.clearFocus()

例如2。

EditText et = (EditText)view.findViewById(R.id.my_name);
 et.setInputType(EditorInfo.TYPE_NULL); // setCursorVisible(false);
,
editText.setEnabled(false);
editText.setFocusable(false);
editText.setFocusableInTouchMode(false);
editText.setCursorVisible(false);
editText.setKeyListener(null);

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...