我需要实现一个用户可以输入任何内容的编辑文本,但是当他们键入以"@"开头的新单词时,自动完成应该开始显示潜在用户.
我了解如何使用AutoCompleteTextView函数进行过滤.但是我不知道如何从'@'符号后面的最后一个单词中捕获字符(忽略之前的任何单词).
因此,当从AutoCompleteTextView列表中选择用户时,它应该用'@'替换该单词,例如.
"这是@steve的消息"
当用户点击列表中的"Steve"时,文本应替换为:
"这是给史蒂夫的信息"
我还需要以可以发送到服务器的形式获取字符串.即从上面的例子我需要发送字符串:
"这是[用户名:steve@bloggs.com,id:44]的消息."
我查看了https://github.com/splitwise/TokenAutoComplete
这似乎很适合在列表中键入电子邮件,但我不知道如何满足我的需求.请记住,我需要支持多个/重复提及:
例如
"这是一个消息,史蒂夫和鲍勃.这是消息中的第二句鲍勃 "
如果有人知道或做过这样的事情,我会非常感激!
android autocompletetextview multiautocompletetextview tokenautocomplete
我试图将这个插件加载到我的一个片段中.我喜欢gradle文件中的dependencie:
compile "com.splitwise:tokenautocomplete:1.3.1@aar"
Run Code Online (Sandbox Code Playgroud)
我的碎片onCreateView看起来像:
View view = inflater.inflate(R.layout.fragment_tutor_setup, container, false);
String[] strings = new String[]{"photoshop",""};
adapter = new ArrayAdapter<String>(getActivity(), R.layout.fragment_tutor_setup, strings);
completionView = (ContactsCompletionView)view.findViewById(R.id.searchView);
completionView.setAdapter(adapter);
if (savedInstanceState == null) {
completionView.setPrefix("Skills: ");
}
return view;
Run Code Online (Sandbox Code Playgroud)
然后我像这样扩展一个ContactsCompletionView:
public class ContactsCompletionView extends TokenCompleteTextView {
public ContactsCompletionView(Context context) {
super(context);
}
public ContactsCompletionView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ContactsCompletionView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected View getViewForObject(Object object) {
String s = …
Run Code Online (Sandbox Code Playgroud)