识别编辑文本中的当前主题标签或标签

Recognize current hashtag or tag in edittext

我有 EditText,我可以在其中写词、主题标签和标签。我用 Linkify 识别所有标签或主题标签,当我用这种方法按下按钮时我可以得到所有它们:

            String text = editText.getText().toString();
            String[] words = text.split(" ");
            List<String> hashtags = new ArrayList<String>();
            List<String> tags = new ArrayList<String>();

            for ( String word : words) {
                if (word.substring(0, 1).equals("#")) {
                    Log.i("HASHTAG", word);
                    hashtags.add(word);
                }
                if (word.substring(0, 1).equals("@")) {
                    Log.i("TAG", word);
                    tags.add(word);
                }
            }

现在我想在写作时获取标签,并向我的数据库发出请求,以便向用户建议一些词。如何获取我插入的标签部分然后进行搜索?

例如,如果我写:"I think that @ta" 我想获取 "ta" 并在我的数据库中搜索它,然后我将使用以下内容填充我的列表视图:"tank" "take" "taste"...

您可以像这样添加 TextChangedListener

editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) { }
        @Override
        public void afterTextChanged(Editable s) { 
            String text = s.toString()
            if (text.lastIndexOf("@") > text.lastIndexOf(" ")){
                String tag = text.substring(text.lastIndexOf("@"), text.length());
                // search for tag...
            }
        }
    });