Edittext imeOptions actionDone不使用digits属性?

时间:2017-02-27 08:05:43

标签: android android-edittext imeoptions

我有一个Editext。它包含属性数字和imeOptions(actionDone)。

<android.support.v7.widget.AppCompatEditText
        android:id="@+id/edit_text_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:digits="1234567890abcdefghijklmnopqrstuvwxyz....."
        android:hint="@string/item_name"
        android:imeOptions="actionDone"
        android:maxLines="1" />

使用数字&amp;&amp ;;时未找到actionDone(Softkeyword中的完成按钮) imeOptions属性在一起。我们只能找到不会改变焦点的输入按钮。我通过跳过digit属性尝试了它,然后imeOptions正常工作。 提前致谢

4 个答案:

答案 0 :(得分:10)

只需添加singleLine =&#34; true&#34;到您的edittext

  android:singleLine = "true"

答案 1 :(得分:9)

view.setRawInputType(view.getInputType & ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE)

调用setRawInputType()而非setInputType()非常重要,因为后者会根据inputmethod设置keylistener,您的android:digits属性将被丢弃。 setRawInputType()只会更改inputmethod并且不会触及KeyListener,此外& ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE将禁用多行模式,因此不会显示任何返回键,而是您所选择的imeOption应该可见。

基本上,singleLine和maxLines有不同的行为。

答案 2 :(得分:1)

我使用“android:digits”进行测试似乎会在edittext字段中出现问题,并且在将imeOptions设置为android时:imeOptions =“actionDone”我无法在键盘上显示“完成”按钮。

我用过

android:inputType="text"

没有数字设置,然后键盘显示“完成”(或根据设备的键盘打勾),然后我可以使用以下方法捕获按键:

editextField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
                int result = actionId & EditorInfo.IME_MASK_ACTION;
                switch(result) {
                    case EditorInfo.IME_ACTION_DONE:
                        // put your code here.
                        break;
                }
                return false;
            }
        }); 

答案 3 :(得分:0)

嗨,您可以通过编程方式设置:

EditText edit = view.findViewById(R.id.memo_edit_text);
edit.setRawInputType(InputType.TYPE_CLASS_TEXT);
edit.setImeActionLabel("DONE", EditorInfo.IME_ACTION_DONE);
edit.setImeOptions(EditorInfo.IME_ACTION_DONE);

要与IME操作相关联的EditText
它适用于textMultiLine和任何数字,只需选择您的操作

信用:https://stackoverflow.com/a/52503760/11858207