如何在 android 应用中提及用户
how to mention user in android app
我想参考 to this question ,关于如何实现提及功能,但 android。
我想知道它在数据库中的具体情况。
主要是AutoCompleteTextView完成的,以及按键事件的处理。我不能写这样的代码。我可以给你简单的主要思想。您通过覆盖 onKeyUp()
方法
来监听用户在键盘上的点击
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_AT:
// @ is clicked
// get the usernames
return true;
default:
return super.onKeyUp(keyCode, event);
}
}
现在您应该开始从数据库中获取用户名,将它们放入 AutoCompleteTextView 适配器中以根据用户条目进行过滤,当用户选择要提及的朋友或某人时 "or many" 您将它们添加到一个 ArrayList 并向他们推送通知。
我想答案已经提供了旧的 post,
Listen to the input. When the user types an @, followed by a
character, make a call to an url on your server
(/user/lookup/?username=joe for example) that routes to a view which
looks up up users beginning with joe. Return it as json and display it
in a dropdown.
为了更简单,您需要使用 @
作为关键字,用于理解用户名的开头。
例如用户键入以下消息
... was with @nour at NYC
在Java中你可以使用正则表达式检测@
,
boolean foundMatch = false;
Pattern regex = Pattern.compile("\b(?:@)\b");
Matcher regexMatcher = regex.matcher(subjectString);
foundMatch = regexMatcher.find();
如果输入字符串有 @
关键字
,这将匹配
现在,一旦你得到 @
关键字,就把 @
之后的所有字符都拿走,直到你得到一个白色的 space。在此示例中,nour
应该是结果,因为它在 @
之后开始并在 white space
之前结束。
在服务器部分,您可以将识别的名称识别为 USER_NAME
、
SELECT * FROM USERS WHERE USER_NAME = "nour";
当然用户名需要唯一。
希望对您有所帮助。
我想参考 to this question ,关于如何实现提及功能,但 android。
我想知道它在数据库中的具体情况。
主要是AutoCompleteTextView完成的,以及按键事件的处理。我不能写这样的代码。我可以给你简单的主要思想。您通过覆盖 onKeyUp()
方法
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_AT:
// @ is clicked
// get the usernames
return true;
default:
return super.onKeyUp(keyCode, event);
}
}
现在您应该开始从数据库中获取用户名,将它们放入 AutoCompleteTextView 适配器中以根据用户条目进行过滤,当用户选择要提及的朋友或某人时 "or many" 您将它们添加到一个 ArrayList 并向他们推送通知。
我想答案已经提供了旧的 post,
Listen to the input. When the user types an @, followed by a character, make a call to an url on your server (/user/lookup/?username=joe for example) that routes to a view which looks up up users beginning with joe. Return it as json and display it in a dropdown.
为了更简单,您需要使用 @
作为关键字,用于理解用户名的开头。
例如用户键入以下消息
... was with @nour at NYC
在Java中你可以使用正则表达式检测@
,
boolean foundMatch = false;
Pattern regex = Pattern.compile("\b(?:@)\b");
Matcher regexMatcher = regex.matcher(subjectString);
foundMatch = regexMatcher.find();
如果输入字符串有 @
关键字
现在,一旦你得到 @
关键字,就把 @
之后的所有字符都拿走,直到你得到一个白色的 space。在此示例中,nour
应该是结果,因为它在 @
之后开始并在 white space
之前结束。
在服务器部分,您可以将识别的名称识别为 USER_NAME
、
SELECT * FROM USERS WHERE USER_NAME = "nour";
当然用户名需要唯一。
希望对您有所帮助。