Как упомянуть пользователя в приложении для Android
Я хочу обратиться к этому вопросу, о том, как реализовать функцию упоминания, но для Android.
Я хочу знать, как это происходит в базе данных конкретно.
2 ответа
Я думаю, что ответ был уже предоставлен старый пост,
Слушайте вход. Когда пользователь вводит символ @, за которым следует символ, вызовите URL-адрес на вашем сервере (например, /user/lookup/? Username=joe), который перенаправляет в представление, которое ищет пользователей, начинающихся с joe. Верните его как json и отобразите в выпадающем списке.
Чтобы сделать это намного проще, нужно использовать @
в качестве ключевого слова, которое будет использоваться для понимания начала имени пользователя.
например, пользователь вводит следующее сообщение
... был с @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";
Конечно, имя пользователя должно быть уникальным.
Надеюсь, поможет.
В основном это делается с помощью 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 для фильтрации в соответствии с записями пользователя, а когда пользователь выбирает друга или кого-то, кого следует упомянуть "или многих", вы добавляете их в ArrayList и отправляете уведомление им.