news 2026/8/22 14:26:37

MentionEditText新手教程:3行代码实现@提及高亮,Android入门自定义EditText控件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MentionEditText新手教程:3行代码实现@提及高亮,Android入门自定义EditText控件

MentionEditText新手教程:3行代码实现@提及高亮,Android入门自定义EditText控件

【免费下载链接】MentionEditTextMentionEditText adds some useful features for mention string(@xxxx), such as highlight, intelligent deletion, intelligent selection and '@' input detection, etc.项目地址: https://gitcode.com/gh_mirrors/me/MentionEditText

MentionEditText 是一款轻量级的 Android 自定义 EditText 控件,仅用 3 行代码就能实现@提及高亮,并内置智能删除、智能选中、'@'输入检测四大能力,是打造社交、评论、聊天类 App 的必备工具。🚀

即使你刚接触 Android 开发,跟着本指南也能在 3 分钟内把这个Android 自定义 EditText 控件集成进项目。

MentionEditText是什么?@提及的4大核心功能

MentionEditText 继承自 AppCompatEditText,因此可以像普通 EditText 一样直接使用——声明即用,输入 "@xxx" 会自动高亮。它的 4 大核心功能如下:

功能说明上手难度
✨ @提及高亮自动为 @xxx 文字上色声明即生效
🗑️ 智能删除删除提及时一键删整段,无需逐字删内置
🎯 智能选中选中 @xxx 时整段被选中内置
🔔 '@'输入检测输入 @ 时自动弹出成员选择面板一行代码回调

完整接口在源码 MentionEditText.java 中,功能总览可参考 README.md。

1分钟安装:添加MentionEditText依赖

在项目根目录的build.gradle中,先添加 JitPack 仓库,再引入一行依赖即可:

repositories { maven { url "https://jitpack.io" } } dependencies { implementation 'com.github.luckyandyzhang:MentionEditText:1.0.0' }

💡 添加后同步一次 Gradle 工程即可。项目采用 Apache 2.0 协议(详见 LICENSE.txt),可放心用于商业项目。

3行XML即可使用:声明MentionEditText控件

在布局文件里,把EditText换成MentionEditText,只需3 行

<io.github.luckyandyzhang.mentionedittext.MentionEditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" />

运行 App 后输入 "hello @world",你会发现 "@world" 自动变成红色——默认高亮色为红色,默认正则支持中文、英文、数字和连字符

3行代码搞定:获取@提及列表并设置高亮颜色

在 Java 代码中,只需 3 行即可完成常用操作:

MentionEditText editText = (MentionEditText) findViewById(R.id.editText); // 1. 获取所有@提及(传 true 返回不带 @ 的名字,如 "world") List<String> mentions = editText.getMentionList(true); // 2. 修改高亮颜色(可选) editText.setMentionTextColor(Color.parseColor("#2196F3"));

💡getMentionList(true)的第一个参数:传true返回"不带 @"的名字,方便直接作为用户列表提交给服务器;传false则保留 "@"。

进阶技巧:检测'@'字符并弹出成员选择面板

这是最实用的功能!当用户在评论框输入 "@" 时,可自动弹出"成员选择"面板——微博、Twitter 的提及功能就是这么实现的:

editText.setOnMentionInputListener((tag) -> { // 检测到 '@' 被输入时,弹出成员选择器 showMentionPicker(); });

配合getMentionList(),你可以快速搭建完整的"@提及"交互体验。

@提及高亮是怎么实现的?(20秒看懂原理)

MentionEditText 仅靠两步就实现了高亮,逻辑非常易懂:

  1. 正则匹配:用默认规则@[\u4e00-\u9fa5\w\-]+找出文本中所有 @提及;
  2. Span 上色:通过ForegroundColorSpan为匹配区间着色,每次文本变化时自动重新高亮。

完整实现细节可查阅源码 MentionEditText.java。

常见问题解答(FAQ)

Q:能自定义 @提及的匹配正则吗?A:可以。调用setPattern("@", "你的正则")即可,例如支持 #话题 等其他标签。

Q:会影响我原有的 EditText 吗?A:不会。MentionEditText 是普通 EditText 的"即插即用"升级版,布局与用法完全一致,还能白赚 4 个功能。

Q:如何获取项目源码?A:执行git clone https://gitcode.com/gh_mirrors/me/MentionEditText,核心库位于library/模块,项目结构简洁、上手零门槛。


到这里,你就已经掌握了这款Android @提及高亮控件MentionEditText。无论是社交、评论还是 IM 应用,这个"3行代码"级的小工具,都能让你的 App 瞬间变得专业又贴心。✨

【免费下载链接】MentionEditTextMentionEditText adds some useful features for mention string(@xxxx), such as highlight, intelligent deletion, intelligent selection and '@' input detection, etc.项目地址: https://gitcode.com/gh_mirrors/me/MentionEditText

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 14:21:58

Windows 11下编译支持CUDA的Ceres Solver 2.2.0完整指南

1. 项目概述与背景最近在做一个三维重建相关的项目&#xff0c;后端优化部分绕不开非线性最小二乘求解。Ceres Solver作为谷歌开源的利器&#xff0c;自然是首选。但项目里有些模块用了CUDA加速&#xff0c;想着要是Ceres也能用上GPU&#xff0c;那整体流程的瓶颈说不定就能打通…

作者头像 李华
网站建设 2026/8/22 14:19:55

免费开源的图片转PDF:手机上三步完成的完整指南

免费开源的图片转PDF&#xff1a;手机上三步完成的完整指南 【免费下载链接】Images-to-PDF An app to convert images to PDF file! 项目地址: https://gitcode.com/gh_mirrors/im/Images-to-PDF Images-to-PDF 是一款免费开源的 Android 应用&#xff0c;把多张照片秒…

作者头像 李华