求解决老师
怎么实现空格的分隔
MultiAutoCompleteTextView
怎么实现空格的分隔
MultiAutoCompleteTextView
2015-01-07
这样写的话,系统默认分隔是逗号,并且在逗号后面还有一个空格,很难发现,如果不想用默认逗号和空格进行分割,这里需要重写MultiAutoCompleteTextView的子类CommaTokenizer,并实现接口Tokenizer(分离器),
mactextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
public class CommaTokenizer implements Tokenizer{
/**
* 在文本框中每输入任何一个字符都会调用这个方法 ,返回的是每一个单词输入的开始位置(从0开始),cursor是最后面的之字符位置。
*/
public int findTokenStart(CharSequence text, int cursor) {
int i = cursor;
System.out.println("findTokenStart---"+text+"---cursor:"+cursor);
while (i > 0 && text.charAt(i - 1) != ' ') {
i--;
}
while (i < cursor && text.charAt(i) == ' ') {
i++;
}
System.out.println(i);
return i;
}
public int findTokenEnd(CharSequence text, int cursor) {
int i = cursor;
int len = text.length();
System.out.println("findTokenEnd---"+text+"---cursor:"+cursor);
while (i < len) {
if (text.charAt(i) == ' ') {
return i;
} else {
i++;
}
}
return len;
}
/**
* 只有当回车结束输入的时候,才会调用些方法 。返回完整的字符串
*/
public CharSequence terminateToken(CharSequence text) {
int i = text.length();
System.out.println("terminateToken---"+text);
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 + " ";
}
}
}
}
举报