Java 如何在MultiAutoCompleteTextview Android中设置多个令牌

Java 如何在MultiAutoCompleteTextview Android中设置多个令牌,java,android,textview,multiautocompletetextview,Java,Android,Textview,Multiautocompletetextview,我需要为不同的令牌设置不同的适配器(即,当我键入“@”时,它应该调用提及的适配器,当我键入“#”时,它应该调用hashAdapter,并且两者必须在同一个MultiAutoCompleteTextView中 请查找我目前使用的示例代码,它适用于@,但不适用于哈希 multiTextview.setTokenizer(new MultiAutoCompleteTextView.Tokenizer() { @Override publ

我需要为不同的令牌设置不同的适配器(即,当我键入“@”时,它应该调用提及的适配器,当我键入“#”时,它应该调用hashAdapter,并且两者必须在同一个MultiAutoCompleteTextView中

请查找我目前使用的示例代码,它适用于@,但不适用于哈希

multiTextview.setTokenizer(new MultiAutoCompleteTextView.Tokenizer() {

                @Override
                public CharSequence terminateToken(CharSequence text) {
                    int i = text.length();

                    while (i > 0 && text.charAt(i - 1) == ' ') {
                        i--;
                    }

                    if (i > 0 && text.charAt(i - 1) == ' ') {
                        return text;
                    } else {
                        if (text instanceof Spanned) {
                            SpannableString sp = new SpannableString(text + " ");
                            TextUtils.copySpansFrom((Spanned) text, 0, text.length(), Object.class, sp, 0);
                            return sp;
                        } else {
                            return text + " ";
                        }
                    }
                }

                @Override
                public int findTokenStart(CharSequence text, int cursor) {
                    int i = cursor;

                    while ((i > 0 && text.charAt(i - 1) != '@') || (i > 0 && text.charAt(i - 1) != '#')) {
                        i--;
                    }


                    //Check if token really started with @, else we don't have a valid token
                    if (i < 1 || text.charAt(i - 1) != '@') {
                        return cursor;
                    }
                    if (i < 1 || text.charAt(i - 1) != '#') {
                        return cursor;
                    }

                    return i;
                }

                @Override
                public int findTokenEnd(CharSequence text, int cursor) {
                    int i = cursor;
                    int len = text.length();

                    while (i < len) {
                        if (text.charAt(i) == ' ') {
                            return i;
                        } else {
                            i++;
                        }
                    }

                    return len;
                }
            });
multiTextview.setTokenizer(新的MultiAutoCompleteTextView.Tokenizer(){
@凌驾
公共CharSequence terminateToken(CharSequence文本){
int i=text.length();
而(i>0&&text.charAt(i-1)=''){
我--;
}
如果(i>0&&text.charAt(i-1)=''){
返回文本;
}否则{
if(已跨越的文本实例){
SpannableString sp=新的SpannableString(text+“”);
TextUtils.copySpansFrom((跨距)text,0,text.length(),Object.class,sp,0);
返回sp;
}否则{
返回文本+“”;
}
}
}
@凌驾
公共int findTokenStart(字符序列文本,int游标){
int i=光标;
而((i>0&&text.charAt(i-1)!='@')|(i>0&&text.charAt(i-1)!='|')){
我--;
}
//检查令牌是否以@开头,否则我们没有有效的令牌
if(i<1 | | text.charAt(i-1)!='@')){
返回光标;
}
if(i<1 | | text.charAt(i-1)!='#'){
返回光标;
}
返回i;
}
@凌驾
公共int findTokenEnd(字符序列文本,int游标){
int i=光标;
int len=text.length();
而(我
有人能帮我吗?我被卡住了