当我使用“MultiAutoCompleteTextView”时,如何用空格replace逗号

我正在做一个简单的程序,使用MultiAutoCompleteTextView来提示input几个字母时的常用词。

码:

  ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_dropdown_item_1line, ary); MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.editText); textView.setAdapter(adapter); textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); private String[] ary = new String[] { "abc", "abcd", "abcde", "abcdef", "abcdefg", "hij", "hijk", "hijkl", "hijklm", "hijklmn", }; 

现在,当我input“a” ,select“abcd”,但结果变成“abcd”。 如何用空格replace逗号?

谢谢!

Solutions Collecting From Web of "当我使用“MultiAutoCompleteTextView”时,如何用空格replace逗号"

 public class SpaceTokenizer implements Tokenizer { public int findTokenStart(CharSequence text, int cursor) { int i = cursor; while (i > 0 && text.charAt(i - 1) != ' ') { i--; } while (i < cursor && text.charAt(i) == ' ') { i++; } return i; } 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; } 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 + " "; } } } } 

这样做的方法是实现你自己的Tokenizer 。 逗号出现的原因是因为您正在使用CommaTokenizer ,它旨在完成此操作。 如果您需要参考如何实现您自己的SpaceTokenizer,还可以查看CommaTokenizer的源代码 。

检查我的问题/答案

如何replaceMultiAutoCompleteTextView下拉列表

你会发现一个SpaceTokenizer类