关于EditText屏蔽Emoji表情及屏蔽其它非法字符带来的光标不准确问题

EditText密码输入框过滤汉字和特殊字符 登录注册时,Android本身的密码输入框无法限制汉字输入,此方法可以直接过滤,非常方便 立即下载


最近的项目使用了EditText编辑文本,但需要屏蔽Emoji表情,于是在EditText的addTextChangedListener做了以下操作

    private String before = "";
    int couIndex;
    boolean isAutoSet;

   mTxtReplay.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before,
                                      int count) {
                if (!isAutoSet) {//判断是手动编辑录入还是通过setText自动设置的  如果是setText设置,则start为0,不再改变光标位置
                    couIndex = start;//记录最后一次光标所在位置
                }
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                                          int after) {
                before = s.toString();
            }

            @Override
            public void afterTextChanged(Editable s) {

                if (isEmoji(mTxtReplay.getText().toString()) || mTxtReplay.getText().toString().contains("☺")) {//判断Emoje表情
                    isAutoSet = true;
                    mTxtReplay.setText(before); //setText的时候会调用onTextChanged并重置start位置为0,所以需要
                    isAutoSet = false;
                    mTxtReplay.setSelection(couIndex);//将最后一次输入文本的开始位置再设置到光标位置
                }
                if (mTxtReplay.getText().toString().length() > 1000) {
                    mTxtReplay.setText(before);
                    ToastUtil.showToast(CarOwnerQuestionReplayActivity.this, "最多输入1000字");
                }

            }
        });

/**
     * 判断方便是否是Emoji表情
     * @param string
     * @return
     */
    public boolean isEmoji(String string) {
        Pattern p = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",
                Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(string);
        return m.find();
    }










android 输入框EditText禁止输入Emoji表情符 android 输入框EditText禁止输入Emoji表情符,博客地址:http://blog.youkuaiyun.com/elsdnwn/article/details/45390771 立即下载

相关推荐

InputFilterEditTextDEmo 过滤特殊字符,空格,emoji的EditText

InputFilterEditTextDEmo 是自定义EditText,来对输入的空格,特殊字符,emoji进行过滤,还可以对输入的长度进行限制。

android EditText完美解决禁止输入法表情

最近有个需求,需要评论的时候禁止输入法的表情输入。然后在网上各种找,发现有些人啊,也是服了,同样的东西反复写,并且还没解决问题,我就想问问,这个你们自己真的动手运行的了,效果实现了吗,还是说,效果实现了,不想分享出来呢。         作为一个有分享精神的人,我把自己做的分享一下,希望能够帮助有需要的人,同时自己也做做笔记。         在网上搜索的发现有三种方案,我全部拿过来。

qq_20967339的博客 1万+

Mongodb操作与Java(四)MongoTemplate的使用

MongoTemplate的使用

A乐神的博客 3438

Android EditText禁止输入空格和特殊字符

有时候我们需要限制EditText输入的字符类型,如空格,特殊字符等,这时候我们可以使用系统提供的输入过滤器——InputFilter。具体实现如下:/** * 禁止EditText输入空格 * @param editText */ public static void setEditTextInhibitInputSpace(EditText editText

犀利的小牛 2万+

告别盲调!用Synopsys VIP搭建PCIe 5.0验证环境,手把手搞定链路训练与均衡调试

本文详细介绍了基于Synopsys VIP搭建PCIe 5.0验证环境的实战指南,重点解析了链路训练(LTSSM)与均衡调试的关键技术。通过配置VIP组件、设计验证平台架构及实战调试技巧,帮助工程师高效解决PCIe 5.0验证中的常见问题,提升芯片验证效率与可靠性。

weixin_28700411的博客 459

[XJTUSE DATABASE]——第三章 关系数据库标准语言SQL

新年了,来个大的,写了好几天,将近9000字,希望对大家有所帮助

weixin_47692652的博客 3121

Edittext禁止输入空格换行以及特殊符号,禁止输入表情

1.禁止表情 InputFilter emojiFilter = new InputFilter() { Pattern emoji = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]", Pattern.UNIC...

钟情短发姑娘的博客 1136

疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC

疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC

weixin_44240228的博客 1万+

edittext 禁止输入非法字符和空格,用到输入过滤器InputFilter

一般在我们初始化的时候,给需要限制的edittext直接设置  //禁止输入空格 setEditTextInhibitInputSpeChat(et_nickname); //禁止输入空格 private void setEditTextInhibitInputSpeChat(EditText et_names) { InputFilter filter=new In...

mintent的博客 1312

(UE4 4.27) HISM性能优化:从空间剔除到合批渲染的实战解析

本文深入解析了UE4 4.27中HISM(UHierarchicalInstancedStaticMesh)组件的性能优化原理与实战技巧。核心在于利用其N叉树空间结构实现高效的CPU视锥剔除,并结合GPU实例化进行合批渲染。文章详细探讨了从控制叶子节点粒度、平衡剔除精度与渲染效率,到结合LOD系统等关键参数的调优方法,为开放世界或大场景的植被性能瓶颈提供了系统解决方案。

weixin_29015051的博客 328

RAG-Anything 实战:构建企业级多模态知识图谱问答系统

本文详细介绍了如何利用RAG-Anything构建企业级多模态知识图谱问答系统,解决跨模态文档处理的痛点。通过架构设计解析、部署实战指南和典型业务场景解决方案,帮助企业实现高效的知识管理和智能检索,提升决策效率。

weixin_29089057的博客 385

android编辑框禁用emoji表情和颜文字

//完美解决输入框中不能输入的非法字符 InputFilter inputFilter=new InputFilter() { Pattern pattern = Pattern.compile("[^a-zA-Z0-9\\u4E00-\\u9FA5_,.?!:;…~_\\-\"\"/@*+'(){}\\[\\]=%&$|\\/♀♂#¥£¢€\"^` ,。?!:;……~“”、“

Cloud 5221

Python爬虫:抓取餐饮平台顾客评分与评价的完整教程

本文介绍了如何使用Python爬虫技术抓取餐饮平台上的餐厅评分和评论数据。我们通过三种主要的抓取方法:静态网页抓取(requests)、动态网页抓取(Selenium)和API抓取,展示了如何抓取餐饮平台的数据。还介绍了如何使用pandas对抓取的数据进行存储、清洗、分析,并进行可视化和情感分析。通过本文的学习,您应该能够掌握如何使用Python爬虫抓取餐饮平台的评论数据,并将这些数据应用于市场分析、顾客反馈和服务优化等领域。

2201_76125261的博客 1144

EditView不支持输入特殊字符以及emoji表情

项目中的输入框因为android与ios10中的emoji表情不对等导致emoji表情不显示问题,要求屏蔽掉emoji表情。在此同时加入了判断是否输入特殊字符限制。public class ContainsEmojiEditText extends EditText { //输入表情前的光标位置 private int cursorPos; //输入表情前EditText中的

chudaijiang的专栏 1611

8、Windows 部署ollama

一个本地运行大模型的集成框架,目前主要针对主流的LLaMA架构的开源大模型设计,通过将模型权重、配置文件和必要数据封装进由Modelfile定义的包中,从而实现大模型的下载、启动和本地运行的自动化部署及推理流程。此外,Ollama内置了一系列针对大模型运行和推理的优化策略,目前作为一个非常热门的大模型托管平台,已被包括LangChain、Taskweaver等在内的多个热门项目高度集成。

Andy_shenzl的博客 1131

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android 输入框清除表情,【Android】android 输入框EditText禁止输入Emoji表情符

packagecom.liujy.ui.wiget;importandroid.content.Context;importandroid.text.Editable;importandroid.text.Selection;importandroid.text.Spannable;importandroid.text.TextWatcher;importandroid.util.A...

weixin_39828102的博客 173

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android禁止EditText输入emoji表情图片

方法一:给EditText设置过滤器,这样在输入emoji的时候就没有反应 private static InputFilter emojiFilter = new InputFilter() { Pattern emoji = Pattern.compile( "[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u2

JaydenHo的专栏 7225

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android edittext 禁止输入特殊字符/或者表情符的方案

添加过滤器 在每个有edittext的Activity中 ,都添加如下代码: InputFilter inputFilter= new InputFilter() { Pattern emoji = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]", ...

liutao12006的博客 3805

Android中限制EditText中输入Emoji表情e

一、什么是Emoji表情:

达尔文.的专栏 2651
上一篇: RxAndroid使用解析以及使用场景分析
下一篇: AndroidStudio Gradle简要配置说明
VIPqiangqiang
博客等级 码龄14年 7粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值