美文网首页
Android-EditText默认显示英文键盘且支持自动换行

Android-EditText默认显示英文键盘且支持自动换行

作者: 晖仔Milo | 来源:发表于2024-03-24 11:58 被阅读0次

1、如题,代码如下

        mBinding.etContent.setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE
                | EditorInfo.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS);

另附中英文过滤Filter

public abstract class EditFilterFactory {

    abstract InputFilter createInputFilter(EditText editText, int maxWord, String notMatchToast);

    public static class SampleEmptyFilter extends EditFilterFactory {

        @Override
        InputFilter createInputFilter(EditText editText, int maxWord, String notMatchToast) {
            return new InputFilter() {
                @Override
                public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                    return source;
                }
            };
        }
    }

    public static class SampleEnFilter extends EditFilterFactory {

        @Override
        InputFilter createInputFilter(EditText editText, int maxWord, String notMatchToast) {
            return new InputFilter() {
                public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                    if(TextUtils.isEmpty(source)){
                        return source;
                    }
                    if (maxWord > 0 && editText.getText().toString().split("[ !?.]").length >= maxWord) {
                        ToastUtils.show(String.format("仅支持%s字,已达上限", maxWord));
                        return "";
                    }

                    String regex = "[a-zA-Z0-9,.!?' ]+";
                    String unRegex = "[^a-zA-Z0-9,.!?' ]+";

                    if (source.toString().matches(regex)) {
                        return source;
                    } else {
                        if (!TextUtils.isEmpty(notMatchToast)) {
                            ToastUtils.show(notMatchToast);
                        }
                        return source.toString().replaceAll(unRegex, "");
                    }
                }
            };
        }

    }

    public static class SampleCnFilter extends EditFilterFactory {

        @Override
        InputFilter createInputFilter(EditText editText, int maxWord, String notMatchToast) {
            return new InputFilter() {
                public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                    if(TextUtils.isEmpty(source)){
                        return source;
                    }
                    if (maxWord > 0 && editText.getText().toString().length() >= maxWord) {
                        ToastUtils.show(String.format("仅支持%s字,已达上限", maxWord));
                        return "";
                    }

                    String regex = "[\u4e00-\u9fa5,。!? ]+";
                    String unRegex = "[^\u4e00-\u9fa5,。!? ]";

                    if (source.toString().matches(regex)) {
                        return source;
                    } else {
                        if (!TextUtils.isEmpty(notMatchToast)) {
                            ToastUtils.show(notMatchToast);
                        }
                        return source.toString().replaceAll(unRegex, "");
                    }
                }
            };
        }

    }

}

相关文章

  • 命令echo

    echo用途:用来显示一行文字,默认会自动换行-e 支持转义 -n 取消自动换行

  • vue和nvue中控件根据内容自适应大小

    自动换行效果如上1,vue默认就会换行显示,nvue页面text不能用class必须用style才能自动换行 内容...

  • VScode如何自动换行设置

    VScode安装完默认不能自动换行,需要我们手动配置。 文本超出显示时,会溢出,如图:文本超出范围,不能自动换行 ...

  • WrapLayout-自动换行布局

    WrapLayout 自动换行布局,水平排列子项,并自动换行,支持不等长不等宽子项,且可以设置垂直间距与水平间距及...

  • 【RPG Maker MV插件】YEP_MessageCore修

    YEP MessageCore插件中有一个文本的自动换行功能。我们在使用【显示文字...】命令显示文字信息时,默认...

  • div 强制换行显示

    在div中显示一个文本时,自动换行显示 但在碰到 测试时 一个输入很长的英文默认会认为是一个单词而不进行切割换行显...

  • css换行

    css的换行显示 1. 浏览器默认显示 文本超出不会断开换行,以单词断句换行 2.word-wrap: break...

  • 【转】设置VsCode自动换行

    转载自:设置VsCode自动换行 我们会发现,Visual Studio Code是默认不会自动换行的 那么如何设...

  • 设置VsCode自动换行

    转载自:设置VsCode自动换行 我们会发现,Visual Studio Code是默认不会自动换行的 那么如何设...

  • 微信小程序 小知识

    横向布局 横向布局 自动换行 Flex 布局教程:语法篇 文本自动换行 文字超出用省略号显示 wx.switchT...

网友评论

      本文标题:Android-EditText默认显示英文键盘且支持自动换行

      本文链接:https://www.haomeiwen.com/subject/qnsltjtx.html