我正在建立一个原型社交网络,我允许我的用户用@标记另一个用户,我使用自动完成文本视图来显示用户@搜索的对话框,但我需要知道用户何时键入“@”以及EditText中的字母。我找到了这个答案,这是我需要的,但我不想只有一个字符。我要整个词在我的数据库里搜索。例如,用户在粘贴文本的中间键入“@jordan”。我要去拿“@”和“@jordan”。我该怎么做?
下面是我的代码示例
private final TextWatcher textWatcher = 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) {
if (!TextUtils.isEmpty(s) && start < s.length()) {
if (!mentionAdapter.isEmpty()) {
mentionAdapter.clear();
}
String lastWord = s.toString().substring(s.toString().lastIndexOf(" ") + 1);
if (lastWord != null){
if (lastWord.length() != 0) {
switch (lastWord.charAt(0)) {
case '#':
if (getAdapter() != hashtagAdapter) {
setAdapter(hashtagAdapter);
}
break;
case '@':
if (getAdapter() != mentionAdapter) {
setAdapter(mentionAdapter);
}
break;
}
}
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
};
2条答案
按热度按时间zpf6vheq1#
我的目标是你在androidjava上工作,所以这里是你问题的答案
每当您在空格键“@jordan”上添加制表符时,此函数都会起作用,“@”之后的字符串和“”之前的字符串意味着您将获得字符串形式的“jordan”
下面是getstringbetweentwochars函数
7jmck4yq2#
你可以通过下面的代码来实现,如果你想@java从字符串你好这是@java最好的编程语言