带有’@’的Android AutoCompleteTextView提到了像twitter和facebook这样的过滤

我需要实现一个用户可以输入任何内容的编辑文本,但是当他们键入以“@”开头的新单词时,自动完成应该开始显示潜在用户.

我了解如何使用AutoCompleteTextView函数进行过滤.但是我不知道如何从’@’符号后面的最后一个单词中捕获字符(忽略之前的任何单词).

因此,当从AutoCompleteTextView列表中选择用户时,它应该用’@’替换该单词,例如.

“这是@steve的消息”

用户点击列表中的“Steve”时,文本应替换为:

“这是给史蒂夫的信息”

我还需要以可以发送到服务器的形式获取字符串.即从上面的例子我需要发送字符串:

“这是[用户名[email protected],id:44]的消息.”

我看了https://github.com/splitwise/TokenAutoComplete

这似乎很适合在列表中键入电子邮件,但我不知道如何满足我的需求.请记住,我需要支持多个/重复提及:

例如

“这是史蒂夫和鲍勃的消息.这是鲍勃留言中的第二句话”

如果有人知道或做过这样的事情,我会非常感激!

解决方法

以下方法提取以“@”开头的单词:
private void parseText(String text) {
    String[] words = text.split("[ \\.]");
    for (int i = 0; i < words.length; i++) {
        if (words[i].length() > 0
                && words[i].charat(0) == '@') {
            System.out.println(words[i]);
        }
    }
}

获得完成后,使用自动完成过滤器,最后使用String.replace替换文本.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...