我想参考to this question,关于如何实现提及功能,但是对于android。
我想知道它在数据库中的具体情况。
答案 0 :(得分:2)
我猜答案已经提供了旧帖子,
收听输入。当用户键入@时,后跟a 字符,调用服务器上的URL (/ user / lookup /?username = joe例如)路由到视图 查找以joe开头的用户。将其作为json返回并显示它 在下拉列表中。
要使更简单,您需要使用@
作为将用于理解用户名开头的关键字。
e.g。用户键入以下消息
...在纽约与@nour一起
在Java中,您可以使用正则表达式
检测@
boolean foundMatch = false;
Pattern regex = Pattern.compile("\\b(?:@)\\b");
Matcher regexMatcher = regex.matcher(subjectString);
foundMatch = regexMatcher.find();
如果输入字符串包含@
关键字
现在,一旦您获得@
关键字,请在@
之后获取所有字符,直至获得空格。在此示例中,nour
应该是结果,因为它在@
之后开始,在white space
之前结束。
在服务器部分中,您可以将识别的名称作为USER_NAME
,
SELECT * FROM USERS WHERE USER_NAME = "nour";
当然,用户名需要唯一。
希望它有所帮助。
答案 1 :(得分:1)
它主要由AutoCompleteTextView完成并处理关键事件。我不能写这样的代码。我可以给你简单的主要想法。您可以通过覆盖 Set<String> set = new HashSet<String>();
set.add(obj.toString());
editor.putStringSet("setOfStrings", set);
方法
onKeyUp()
现在你应该开始从数据库中获取用户名,将它们放在AutoCompleteTextView适配器中,根据用户条目进行过滤,以及当用户选择要提及的朋友或某人时,#34;或许多&#34;您将它们添加到ArrayList并向其发送通知。