Как упомянуть пользователя в приложении для 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 и отправляете уведомление им.

Другие вопросы по тегам