android android-widget multiautocompletetextview

android - Cómo reemplazar la coma con un espacio cuando uso el "MultiAutoCompleteTextView"



checkedtextview android (3)

Estoy haciendo un programa simple utilizando MultiAutoCompleteTextView para MultiAutoCompleteTextView las palabras comunes cuando ingreso varias letras.

código:

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", };

Ahora, cuando ingreso ''a'' y elijo "abcd" pero el resultado se convierte en "abcd". ¿Cómo reemplazar la coma por un espacio?

¡Gracias!


La forma de hacerlo sería implementar su propio Tokenizer . La razón por la que aparece la coma es porque estás usando CommaTokenizer , que está diseñado para hacer exactamente eso. También puede consultar el código fuente de CommaTokenizer si necesita una referencia sobre cómo implementar su propio SpaceTokenizer.



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 + " "; } } } }