当前位置: 首页 > 知识库问答 >
问题:

在返回键按下时隐藏软键盘

贺景山
2023-03-14

我已经搜索了半打其他答案,但没有找到一个有效的答案。我只是想在用户按下回车键时关闭软键盘。(相当于极其简单的iOS“辞职键盘”通话。)在下面的代码中,不会调用onEditorAction方法。我在XML文件中设置了EditText视图,片段中的代码如下:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        fragView = inflater.inflate(R.layout.fragment_encrypt2, container, false);
        textField = (EditText) fragView.findViewById(R.id.textField);

        textField.setOnEditorActionListener(new TextView.OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView arg0, int actionId,
                                          KeyEvent arg2) {
                // hide the keyboard and search the web when the enter key
                // button is pressed
                if (actionId == EditorInfo.IME_ACTION_GO
                        || actionId == EditorInfo.IME_ACTION_DONE
                        || actionId == EditorInfo.IME_ACTION_NEXT
                        || actionId == EditorInfo.IME_ACTION_SEND
                        || actionId == EditorInfo.IME_ACTION_SEARCH
                        || (arg2.getAction() == KeyEvent.KEYCODE_ENTER)) {
                    InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(textField.getWindowToken(), 0);

                    return true;
                }
                return false;
            }
        });

        // Inflate the layout for this fragment
        return fragView;//inflater.inflate(R.layout.fragment_encrypt2, container, false);
    }

下面是XML文件中的一个片段,我在其中定义了EditText字段。我需要EditText多行。

<EditText
            android:id="@+id/textField"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:hint="@string/Encrypted_Text_Hint"
            android:gravity="top"
            android:inputType="textMultiLine"
            android:imeOptions="actionDone"/>

共有3个答案

夏昊
2023-03-14

下面的代码适用于我。

IN XML:

    android:imeOptions="actionDone"
    android:inputType="textCapWords"

在JAVA类:

    edit_text.setOnEditorActionListener(new OnEditorActionListener() {

                @Override
                public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                    // TODO Auto-generated method stub

                    if ((actionId==EditorInfo.IME_ACTION_DONE )   )
                     {   
                        //Toast.makeText(getActivity(), "call",45).show();
                       // hide virtual keyboard
                       InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);

                       //or try following:
                       //InputMethodManager imm = (InputMethodManager)getBaseContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                       imm.hideSoftInputFromWindow(auto_data.getWindowToken(), 0);
                       return true;
                    }
                    return false;

                }
            });
上官兴昌
2023-03-14

我通过将XML文件中的以下内容从更改为解决了这个问题:

 android:inputType="textMultiLine"

致:

 android:inputType="textImeMultiLine"
戚学文
2023-03-14

如果不需要多行,那么对于edittext,只需指定一行即可。对于edittext,也可以按如下方式放置选项:

<EditText 
   android:id="@+id/edittext_done"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:imeOptions="actionDone"
   android:singleLine="true"
   />

我显然不知道你是否在努力实现这一目标。随便你看看。

编辑:android: SingleLine是弃用的,因为API 3由于性能不好,你必须使用android: maxLines代替。SingleLine将是可用的,因为即使现在一些效果不支持android: maxLines属性。

 类似资料:
  • 我有一个AutoCompleteTextView,它像往常一样在用户键入3个字母后提供建议。一旦我触摸建议列表,我想隐藏软键盘一次。我在下面用表格布局所做的只是在单击除建议列表之外的任何地方时隐藏键盘。 可扩展置标语言 爪哇岛 用于自定义列表的 XML

  • 我试图防止在SearchView上调用requestFocus()后键盘出现,但在Android8上没有解决方案。 我试过: /*3/ /*4/ onGlobalLayout()工作,但软键盘显示了近0.5秒后消失。 即使在调用requestFocus()之后,是否可以帮助隐藏软键盘?

  • 我需要隐藏软键盘以响应单击按钮。我看到了一些关于这方面的帖子,我尝试了: 这很有效。但现在我有两个EditText视图。无论选择了哪个EditText,现在如何隐藏软键盘?我也试过了 ,但那不起作用... 谢谢你的帮助! 编辑:找到解决方案。贴在下面。

  • 我正在构建一个简单的刽子手应用程序。我目前设置键盘隐藏后,用户触摸提交按钮,并限制EditText的最大长度为"1"。 我想要的是,在用户触摸字母键并成功地在编辑文本中输入有效条目后,键盘立即隐藏。我尝试过实现这里使用的KeyEvent方法,并对其进行了修改,以使用getMaxKeyCode()方法监听任何键代码。 更新***:为了澄清,我对回车按钮没有问题,它工作正常。我希望在用户触摸到他们猜测

  • 问题内容: 我正在为优惠券公司开发前端站点,并且我有一个页面,用户只需要输入电话号码和花费的$$。我们想出了一个有趣的内置Java脚本的屏幕键盘,该键盘易于使用且速度很快。但是,我正在寻找一种解决方案,以防止用户聚焦并在这些字段中输入文本/数字时弹出软键盘。 我知道HTML5提出的“数字/电话/电子邮件”类型属性。但是,冒着听起来发疯的风险,我真的只想使用屏幕键盘即可。 注意:此网站主要针对平板电

  • 使用操作栏导航加载第二个片段后 重新加载另一个片段,动作栏仍然是visibile 我用一个测试项目用最小的代码加载片段,行为是一样的,分裂条被软键盘隐藏。我怎样才能使它从一开始就显示拆分条?