识别编辑文本中的当前主题标签或标签
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...
}
}
});
我有 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...
}
}
});