Android y el CommaTokenizer
Necesito un Tokenizer (para AutoCompleteTextview) que puede hacer lo siguiente:
Dos palabras deben reconocerse como tales cuando están separadas por un carácter en blancoDos palabras también deben reconocerse como tales cuando están separadas por una nueva línea ("Enter" presionado)1) está funcionando, pero ¿cómo puedo lograr 2?
public class SpaceTokenizer implements Tokenizer {
@Override
public int findTokenStart(CharSequence text, int cursor) {
int i = cursor;
while (i > 0 && (text.charAt(i - 1) != ' ')) {
i--;
}
while (i < cursor && (text.charAt(i) == ' ' || text.charAt(i) == '\n')) {
i++;
}
return i;
}
@Override
public int findTokenEnd(CharSequence text, int cursor) {
int i = cursor;
int len = text.length();
while (i < len) {
if (text.charAt(i) == ' ' || text.charAt(i) == '\n') {
return i;
} else {
i++;
}
}
return len;
}
@Override
public CharSequence terminateToken(CharSequence text) {
int i = text.length();
while (i > 0 && (text.charAt(i - 1) == ' ' || text.charAt(i - 1) == '\n')) {
i--;
}
if (i > 0 && (text.charAt(i - 1) == ' ' || text.charAt(i - 1) == '\n')) {
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 + " ";
}
}
}
}